変数名を明示的に書く方法
変数名は、意味をなす限り、できるだけ長くなるように解釈されます。
(初めてのPerl P40)
Perlでは、変数名に英数字またはアンスコを続けると
それも変数名だと解釈されます。
#!/usr/bin/perl use strict; use warnings; my $what = "brontosaurus steak"; my $n = 3; print "fred ate $n $whats.\n"; # -> Global symbol "$whats" requires explicit package name at var.pl line 6. # Execution of var.pl aborted due to compilation errors.
この場合はまだエラーが出るのでおかしいことに気付けますが
my $whats = "fred"; print "fred ate $n $whats.\n"; # -> fred ate 3 fred.
その変数=$whatsも存在した日には
出力結果はまったくの別物です。
解決策としては
print "fred ate $n ${what}s.\n"; # -> fred ate 3 brontosaurus steaks.
{}を使えばここが変数名ですよーとPerlに伝えることができます。
すべての変数に{}を付けるわけにはいきませんが
役立つときはありそうです。