検索条件
全2件
(1/1ページ)
汎用変数と思えばいいかな. 型定義は特に無い.(値/文字列/リファレンス(ポインタ))
my $hogehoge
初期化しない状態は未定義(undef)となります。値ならゼロ、文字列ならNULL扱いになります。演算時に評価されますが、use warningすると未初期化変数の演算といわれます。undefかどうかの判定は、下記の関数を利用することになります。
defined($hogehoge)
下記の比較演算子は使えません。
$hogehoge == undef $hogehoge eq undef
スコープ'hogehoge'を定義する。
SuperClassを定義します. this class IS-A the_class.もしくは、下記のように記述できます。
use the_class; @thisclass::ISA = qw(the_class); ||> ↓ >|| use base qw(the_class);
@hoge = ('hoge','hogehoge',...); @hoge = ("hoge","hogehoge",...); ← 展開される @hoge = qw ( hoge hogehoge ...); ← 展開される. 空白で区切られる.
$hoge[0] # zero-origin $#hoge # indexの末尾が得られる $hoge[-1] <=> $hoge[$#hoge]
my %hash_name;
%hash = ( "key1" => value, "key2" => value); または、一次元配列でkey,valueの順列。 %hash = (key1, value1, key2, value2)
%hash = (); # 空っぽになる. |ハッシュアクセス: keys %hash # hashの持つキーを配列で取得する. values %hash # 同, 値を配列で取得する. exists $hash{'key'}; # そのキーが存在するか. 真/偽を返す. 未初期化と定義済みと判断可能. delete $hash{key} # 指定したキー/値を削除する.
syntax:
pack TEMPLATE, LIST unpack TEMPLATE, LIST
templateの書式を以下に示します。
フォーマット | 意味 | フォーマット | 意味 | |
---|---|---|---|---|
a | ASCII 文字列 | A | ASCII 文字列、足りない領域はスペース文字で埋める | |
b | ビット列 (昇ビット順) | B | ビット列 (降ビット順) | |
c | 符号付き char 値 | C | 符号なし char 値 | |
d | 機種依存の倍精度浮動小数点数 | f | 機種依存の単精度浮動小数点数 | |
h | 16進数文字列 (下位ビットが先) | H | 16進数文字列 (上位ビットが先) | |
i | 符号付き int 値 | I | 符号なし int 値 | |
l | 符号付き long 値 | L | 符号なし long 値 | |
n | ネットワークバイト順序 (ビッグエンディアン) の short 値 | N | ネットワークバイト順序 (ビッグエンディアン) の long 値 | |
p | 文字列へのポインタ | P | 構造体 (固定長文字列) へのポインタ | |
s | 符号付き short 値 | S | 符号なし short 値 | |
v | VAXバイト 順序 (リトルエンディアン) の short 値 | V | VAXバイト 順序 (リトルエンディアン) の long 値 | |
u | uuencode した文字列 | x | ヌル文字 | |
X | 1バイト後退 | @ | 絶対位置までヌル文字で埋める |
区切り文字を指定して、stringを分割します。
@list = split(/\t/ , $var); // 区切りはTAB文字となっていることを見る. @list = split(/[\t]/ , $var); // 区切りはTAB文字となっていることを見る. // 複数指定もできるが,区切り文字もリストに放り込まれる.
個人メモだから説明を端折ってもいいかな...\Cの標準関数 fopen/fclose みたいな感じで。出力は">"をつけて表す。
my @binhex; if ( ! open(fp, "<".$fname ) ) { printf("cannot open \"$fname\" \n"); die ; } binmode( fp ); while( read(fp, $buffer, $size_of_bytes) ){ @binhex = unpack( "v32", $buffer ) ; # divide little endian(short) x 32 }
便利なscript言語として、数年ほど前から、開発の補助ツールとしてPerlをかじっているけれども、備忘録を兼ねてメモを置いていくことにしました。
今までお世話になったWEBサイト様も多数ありましたが、自分のほしいものは自分でまとめておくに限りますしね。
環境としては、Windows x86またはx64 / Active Perl 5.10.0あたりを想定します。