-
Use of uninitialized value in substitution (s///)/楽
-
$str をいつも定義できるとは限らないので(そういう場面ありますよね)、「$str =~ s/a/b/g;」この行でなんとかしたい。
以下のようにする。
#!/usr/bin/perl
use strict;
use warnings;
my $str;
$str =~ s/a/b/g if(defined $str);
定義されていれば(defined)、置換を実行する。 -
「$str =~ /a/」で「Use of uninitialized value in pattern match (m//)」と警告される。
「未定義値でマッチしてるぜ」というもの。
以下のように回避。
#!/usr/bin/perl
use strict;
use warnings;
my $str;
if(defined $str && $str =~ /a/){
print "include a\n";
}
-
0 件のコメント:
コメントを投稿