2012-01-22

Perl can invoke every shebang

Perl で Python スクリプトを実行してみる。

$ cat hello.py
#!/usr/bin/python
print 'Hello Python!'

$ perl hello.py
Hello Python!

何これ!? 何で動くの?

$ cat hello2.py
#!/usr/bin/env python
print 'Hello Python!'

$ perl hello2.py
Hello Python!
$ cat hello.sh
#!/bin/bash
echo Hello Bash!

$ perl hello.sh
Hello Bash!

どうやら Perl は shebang 行を理解して良きに計らってくれるらしい。今まで Perl 使ってて全く気付かなかった。何て気の利く子!

ということは、ファイル形式が分からないときは Perl で起動するのが一番確実ということか。となると次は当然「バイナリファイルも!」と期待は膨らむが、残念ながら ELF 形式は起動できなかった。

何でこんなことに気付いたかというと、昔書いた Makefile 中に「perl foo.py」とかいうのを見つけたから。いっそエラーになってくれれば恥ずかしい思いをせずに済んだのに・・・。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。