某所で Perl のプログラミングに悩んでいる例があったのでちょっと考えてみる。
my @a = ('A', undef, 'B');
my $s = join(',', @a);
このように要素に undef を含む配列について join などをする場合、"Use of uninitialized value in join or string at .. " と警告が出る。これを回避するには予め grep で undef 要素を排除しておく。
@a = grep(defined($_), @a);
undef を空文字列要素などとして残したい場合には次のようにする。
grep { $_ = '' unless defined($_) } @a;
「Perl ベストプラクティス」は日本語版が出た。とかく読みにくいと嫌われがちな Perl 書法のひとつの基準である。
Posted by masato at 11:27 PMおそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。