Archive::Extractの Perldoc から:
$ae->ファイル
これは、アーカイブからのすべてのパスを保持する配列参照です。詳細については、extract() を参照してください。
メソッドが配列やハッシュではなく、それらへの参照を返すことは非常に一般的です。また、メソッドが配列やハッシュへの参照を引数として受け取ることも非常に一般的です。これは、メソッドと呼び出しの間でやり取りされるデータが少なくなるためです。
あなたはこれを行うことができます:
for my $file ( @{ $ae->files } ) {
print "$file\n";
}
は@{...}
参照を逆参照し、単純な配列にします。はい、私が行ったように、配列参照を返すメソッド呼び出しを配置できます@{...}
。
すでに述べたように、非常に役立つパッケージはData::Dumperです。これは参照を取得し、そこに含まれるデータ構造を表示できます。また、そのデータ構造が祝福されたオブジェクトを表しているかどうかもわかります。これは、データを引き出すために使用できる方法があるという手がかりになる可能性があります.
たとえば、Companyというオブジェクトがあるとします。Employee
メソッドの 1 つは、 objectsへの配列参照を返す $company->Employees かもしれません。あなたはこれに気付かないかもしれませんがARRAY{0x7fd5c22f7cd8)
、Data::Dumper を通してこれをプッシュすると、構造を理解するのに役立つかもしれません:
use Data::Dumper;
use Feature qw(say);
use Company;
[...]
@employee_list = $company->Employees;
# say join "\n", @employee_list; #Doesn't work.
say Dumper @employee_list;
これは次のように表示されます:
$VAR = [
{
FIRST => 'Marion',
LAST => 'Librarian',
POSITION => 'Yes Man',
} Employee,
{
FIRST => 'Charlie',
LAST => 'australopithecus`,
POSITION => 'Cheese Cube Eater'
} Employee,
]
これがハッシュ参照の配列であることがわかるだけでなく、これらもオブジェクトですEmployee
。したがって、クラスのいくつかのメソッドを使用して、必要なEmployee
情報を解析する必要があります。
use Feature qw(say);
use Company;
use Employee;
[...]
for my $employee ( @{ $company->Employees } ) {
say "First Name: " . $employee->First;
say "Last Name: " . $employee->Last;
say "Position: " . $employee->Position;
print "\n";
}