Perl

Counter

マッチした部分のみを取り出すには

$&

<TAG>foo</TAG>でfooを抜きだしたい場合は
/<TAG>(\w+)<\/TAG>/
で$1に入る。
 

split 特定の文字を区切り文字として抜き出す。

@k = split(';',$1);
print join("\t", @k)."\t".$2."\n";

文字列を1文字づつの配列とするには

@arrey = split(//);

複数のスペースを区切り文字として取り出すには

@arrey = split(/\ +/);

メタ文字

\ | ( ) [ { ^ $ * + ? .

最短マッチ

.*?

配列の要素にアクセスするには?

@arrey -> $arrey[$index]

for文はperlではどうかく?

for $i (0 .. $max) {

}

文字列を1文字づつの配列とするには?

@arrey = split(//);

複数のスペースを区切り文字として取り出すには

@arrey = split(/\ +/);

$$ 実行中のPerlスクリプトのプロセスIDの値が入っている。

配列操作

配列の大きさをしらべる$#array
配列の要素にアクセス$arrey[$index]
shift(@hairetu)配列の先頭要素を取り出してその値を返す
unshift(@hairetu,val...)配列の先頭に要素を挿入
push(@hairetu,val...)配列の末尾に要素を追加
pop(@hairetu)配列の最後の要素を取り出してその値を返す

出力用にファイルを開く

open(FILE, ">foo");
>の替わりに>>で追加

strlenはないの?

length()

ホスト名らしきものを見付ける

($host)= m/(\w+(\.\w+)*)/;

大文字を小文字に

tr/A-Z/a-z/

文字列の置換オプション

$str = "foofoo";
$str =~ s/foo/bar/g;
とすればbarbarが出力される

ハッシュの表記法

%price = ('apple', 200, 'orange', 90, 'banana', 150);
というのは
%price = ('apple => 200, orange => 90, banana => 150);
とできる(Perl5から導入された。)

ハッシュのキーに空白が含まれていると動作が正しく行われなくなる。

CGIモジュールの使い方

デフォルトだとPOSTメソッド
use CGI;

$q = new CGI;
print $q->header("text/html");
print $q->start_html(-title => "URL form NetNews"),"\n";
処理
if($q->param()) {
# 入力があった場合
  print $q->param(-name=>'group');
} else {
# テキストフィールド
print $q->textfield(-name=>'group',
		      -size=>50);
$q->Reset
}
print $q->end_html;

File::Find

ディレクトリツリーをたどる

モジュールの追加方法(CPANモジュールの使い方)

perl -MCPAN -e shell
を初めてすると
~/.cpanと言うディレクトリが作られ、設定ファイルが
.cpan/CPAN/MyConfig.pm
できた。

>install Bundle::Target-Module 
などとすると、依存するものをまとめて簡単にインストールできる。

関数の説明を読むには

% perldoc -f func

パールのライブラリのドキュメントを読むには

% perldoc Net::FTP

自作ダメスクリプト

eki_info.pl
首都圏のJRの遅れ情報を楽に確認
formScan.pl
FORMタグで囲まれた部分を取り出す。
getWebByPost.pl
POSTメソッドじゃないとだめなページをコマンドラインでとって来させる。
squid.pl
squidのログからURLのみを取り出す


[ プライベートビーチ | ホーム | ゲストブック ]