ページ更新: 2005-03-06 (日) (6374日前)
[編集]文字列変数中の変数を置き換える #2005-03-11
#!/usr/bin/perl $message = 'Hi $name, nice to meet you.'; #この文字列は実際にはファイルから読み込んだりする。 $name = 'discypus'; $replaced1 = eval "qq{$message}"; $replaced2 = eval qq{"$message"}; print "message='", $message, "'\n"; print "replaced1='", $replaced1, "'\n"; print "replaced2='", $replaced2, "'\n"; $ ./replace.pl message='Hi $name, nice to meet you.' replaced1='Hi discypus, nice to meet you.' replaced2='Hi discypus, nice to meet you.'[編集] MD5 Digest #インストール $ perl -MCPAN -eshell cpan> m /Digest::Perl/ CPAN: Storable loaded ok Module Digest::Perl::MD4 (O/OT/OTAKA/Digest-Perl-MD4-1.4.tar.gz) Module Digest::Perl::MD5 (D/DE/DELTA/Digest-Perl-MD5-1.5.tar.gz) 2 items found cpan> install Digest::Perl::MD5 : (略) cpan> bye サンプル use Digest::Perl::MD5 'md5_hex'; print "Digest (MD5) is ", md5_hex('foobarbas'), "\n"; 実行結果 Digest (MD5) is 6df23dc03f9b54cc38a0fc1483df6e21[編集] ファイルの内容をまるごと変数に入れる #毎回忘れて、perldocを紐解く羽目になるので。 open FILE, 'filepath' or die; { local $/; $slurp = <FILE>; } close FILE;[編集] 改行が入った文字列のマッチング #行ごとの処理:multiline (^や$を使うとき) s/^[ \t]+//gm; # 行の先頭のホワイトスペースを消す 行をまたがった処理:singleline s|/\*.*?\*/||gs; # 「/* */」形式のコメントを消す。 行を意識しない処理 s/[\n]+/\n/g; # 改行が連続していたら、1つにする。[編集] リストに4個の数値(それぞれbyte値)が入っているとき、それをbig endian 32-bit int に変換する。 #my @list = ( 0x31, 0x32, 0x33, 0x34, ); my $value = unpack 'N', pack 'C*', @list; printf "value (hex) = %d (%X)\n", $value, $value; $ perl test.pl value (hex) = 825373492 (31323334)[編集] STDIN, STDOUTなどがttyに結び付けられているかどうか調べる #-t -t STDOUT perldoc -f -t |