スカラーコンテキストで評価する場合は注意
こんな感じでやると
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(:5.10);
use utf8;
testglob();
testglob();
sub testglob {
my $path = glob("~/hoge.txt");
say "file = $path";
}
結果はこうなる
file = /home/yamasita/hoge.txt
Use of uninitialized value $path in concatenation (.) or string at test.pl line 12.
file =
2回目はundefが返ってる
これはイテレーターになってるので、配列1個と、打ち止めのundefが返ってるから
というわけで、こういうときは配列で受け取ってイテレータを最後まで進めたほうが良い
my $path = @{[glob("~/hoge.txt")]}[0];