**目次**
statのモード【UNIX】
ActivePerlのアップグレイドにおける注意点 【Windows】
strictプラグマ使用時における変数 【全般】
Versionをrequireしよう 【全般】
フォームの汚染防止 【全般】
マニュアルを見る 【UNIX】
-wオプションを常時付ける 【全般】
単語の境界を表す正規表現 【全般】
配列を空にする 【全般】
置換するワンライナー 【全般】
**Link**
Windows Tips
UNIX Tips
Adobe Acrobat Tips
Bits of knowledge(豆知識)
その他のTips
UNIX Tipsに掲載。
(2000.4.10 記)
(2001.2.19 改訂(Perl5追加))
▲top
Windows Tipsに掲載。
(2001.10.9 記)
▲top
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
標準モジュールが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
まずは「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
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)