Perl Tips

**目次**
statのモード【UNIX】
ActivePerlのアップグレイドにおける注意点 【Windows】
strictプラグマ使用時における変数 【全般】
Versionをrequireしよう 【全般】
フォームの汚染防止 【全般】
マニュアルを見る 【UNIX】
-wオプションを常時付ける 【全般】
単語の境界を表す正規表現 【全般】
配列を空にする 【全般】
置換するワンライナー 【全般】

**Link**
Windows Tips
UNIX Tips
Adobe Acrobat Tips
Bits of knowledge(豆知識)
その他のTips


statのモード【UNIX】

 UNIX Tipsに掲載。

(2000.4.10 記)
(2001.2.19 改訂(Perl5追加))
▲top

ActivePerlのアップグレイドにおける注意点【Windows】

 Windows Tipsに掲載。

(2001.10.9 記)
▲top

strictプラグマ使用時における変数【全般】

 use stirct 'vars';
とした場合、或いは単に
 use strict;
とした場合、グローバル変数は全てパッケージ名で完全に修飾しなければなりません。

例(1):
#!/usr/local/bin/perl

use strict;

my $var1;

$main::var1 = 3;
subroutine();

sub subroutine {
    print "var1 = $main::var1\n";
}

 これが面倒な場合は以下のようにすれば記述の負担を減らすことができます。
例(2):
#!/usr/local/bin/perl

use strict;
use vars qw($var1 @arr1);

my $var1 = 3;
my @arr1 = (1, 2, 3);
subroutine();

sub subroutine {
    print "var1 = $var1\n";
    foreach (@arr1) {
        print "arr1 = $_\n";
    }
}

 また、Ver5.6.0以降では以下のようにすることもできます。
例(3):
#!/usr/local/bin/perl

require 5.6.0;
use strict;
our $var1 = 3;

subroutine();

sub subroutine {
    print "var1 = $var1\n";
}

(2001.12.3 記)
(2001.12.4 改訂)
▲top

Versionをrequireしよう【全般】

 標準モジュールがPerlの配布に添付されるようになったのはVer.5.004からだ。標準モジュールを使用する際には必ずVer.5.004をrequireする癖をつけよう。

例(1):
#!/usr/local/bin/perl

require 5.004;
use File::Copy;
(以下略)

 our関数、2進定数、LvalueサブルーチンなどVer5.6からの新機能を使用する際には必ずVer.5.6.0をrequireしよう。
例(2):
#!/usr/local/bin/perl

require 5.6.0;
use strict;
our $var1 = 3;
my $bin = #0b0010111111; (以下略)

(2001.12.21 記)
▲top

フォームの汚染防止【全般】

CERT/CCから丸写し
sub filter {
    local( $fd ) = @_;
    $fd =~ s/[\<\>\"\'\%\;\)\(\&\+]//g;
    return( $fd ) ;
}

$data = filter( $data );

(2002.2.22 記)
▲top

マニュアルを見る【UNIX】

まずは「man perl」で目次を見る。
ジャンルと詳細が一覧表示されるので、その後詳細なmanを見る。

(例)perlembed Perl ways to embed perl in your C or C++ application
という項目で「CやC++アプリケーションにPerlを組み込む方法」がわかるはず。
「man perlembed」を実行。

組み込み関数について調べる時は「perldoc -f 関数名」が便利だ。

(例)perldoc -f sprintf

キーワードでFAQを検索することもできる。「perldoc -q キーワード」だ。

(例)perldoc -q substr

(2002.3.15 記)
(2002.5.14 追記)
▲top

-wオプションを常時付ける【全般】

1行目は
#!/usr/local/bin/perl -w
などのように-wオプションを常時付けるようにすると、上達の近道だと思う。
# 更に、use strictも必ず付けるようにすれば、なおよいか、と。

(2002.3.15 記)
▲top

単語の境界を表す正規表現【全般】

Perl, vi, grep等共通で使える正規表現「\b」。これは英数字以外を表す。
(例)「string1」「string11」「string123」という文字列に対して/string1/という正規表現をかけた場合、全てにマッチしてしまう。しかしstring1が欲しいのであって、string11やstring123は欲しくない場合、/string1\b/が有効となる。

(2002.3.15 記)
▲top

配列を空にする 【全般】

 配列が@arrayだとする。
$#array = -1
とすれば、配列は空となる。-1に限らず負の数を代入すればよい。
 また、もう一つの方法としては
@array = ();
でも、配列を空にすることができる。  ちなみに上記二つの方法では配列は「空」にはなるが「未定義」にはならない。
 配列を未定義にするには
undef @array;
とする。こうすれば、配列は「空」ではなく「未定義」となる。

(2002.6.20 記)
(2002.7.24 追記)
▲top

置換するワンライナー 【全般】

sedのようにPerlで置換するワンライナー。
echo "aaa" | perl -pe 's/aaa/bbb'

(2003.7.28 記)
▲top


Text by 仁衡琢磨 (anaksimandros@nihira.jp)


Back to the index.

home


Valid XHTML1.0! Valid CSS! All the Perl that's Practical to Extract and Report