我有这个结构
package StrukturaStudent;
use Class::Struct;
struct Student => {
sifra => '$',
ime => '$',
prezime => '$',
brojBodova => '$'
};
和功能
sub ispisiStudenta($st){
print $st->{sifra}." ". $st->{ime}." ". $st->{rezime}." ". $st->{brojBodova}."\n";
}
我想打印当前的学生。
在另一个包中,我有一组学生,并将此功能称为
StrukturaStudent->ispisiStudenta(@lista[1])."\n";
我什么都没得到(控制台上只有新的空行)。 但是当我从主要的
中调用它时print @lista[1]->ime;
我做对了我需要的东西。那么如何从数组中传递一个学生并在函数内打印呢?此外,我如何传递整个数组并在for循环中打印其中的每个学生?
答案 0 :(得分:4)
$st->{ime}
与$st->ime
不同。第一个在哈希引用中搜索一个键,第二个调用方法。
您应该始终使用Class:Struct的方法,如documentation所示。此外,您不能在Perl中声明命名参数:
sub ispisiStudenta {
my $st = shift;
print join(' ', $st->sifra, $st->ime, $st->rezime, $st->brojBodova), "\n";
}