Perlについての質問箱 17箱目
■ このスレッドは過去ログ倉庫に格納されています
0019デフォルトの名無しさん
2005/06/06(月) 19:44:47$Hoge::xをuse strict下で$xと書いたら普通は怒られるというのが問題の本質と
思われるので、use varsかourで回避するしかないんじゃない? 型グロブによる
別名づけはパッケージ変数でしか使えないし。
あるいはCPANでさがせばレキシカル変数の別名を実現するモジュールがあるので
そういうのを使うことを考えてみるとか。たとえばLexical::Aliasを使うとこん
な風に書ける。
use strict;
package Hoge;
use Lexical::Alias;
sub foo(\@) {
my($arrayref) = @_;
my @x;
alias @$arrayref => @x;
print "(foo) ";
foreach (@x) {
print "$_ ";
}
print "\n";
push @x, ('this', 'is', 'a', 'pen', '.');
}
package main;
my @bar = ('Hello', 'World', '!');
Hoge::foo(@bar);
print "(bar) @bar\n";
■ このスレッドは過去ログ倉庫に格納されています