将结构成员传递给函数时打印结构成员

时间:2013-04-08 10:23:24

标签: perl

我有这个结构

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循环中打印其中的每个学生?

1 个答案:

答案 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";
}