Perl 将结构成员传递给函数时打印它
我有这个结构Perl 将结构成员传递给函数时打印它,perl,Perl,我有这个结构 package StrukturaStudent; use Class::Struct; struct Student => { sifra => '$', ime => '$', prezime => '$', brojBodova => '$' }; 和功能 sub ispisiStudenta($st){ print $st->{sifra}." ". $st->{ime}." ". $st->{rezime}." ".
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";
我没有得到任何东西(只有控制台上的新空行)。
但是当我从main打电话给你的时候
print @lista[1]->ime;
我得到了我需要的东西。那么,如何从数组中传递一个学生并在函数中打印它呢?此外,如何传递整个数组并在for循环中打印其中的每个学生?
$st->{ime}
与$st->ime
不同。第一个函数在散列引用中搜索一个键,第二个函数调用一个方法
您应该始终使用Class:Struct的方法,如中所示。此外,不能在Perl中声明命名参数:
sub ispisiStudenta {
my $st = shift;
print join(' ', $st->sifra, $st->ime, $st->rezime, $st->brojBodova), "\n";
}
$st->{ime}
与$st->ime
不同。第一个函数在散列引用中搜索一个键,第二个函数调用一个方法
您应该始终使用Class:Struct的方法,如中所示。此外,不能在Perl中声明命名参数:
sub ispisiStudenta {
my $st = shift;
print join(' ', $st->sifra, $st->ime, $st->rezime, $st->brojBodova), "\n";
}
我尝试了上面的代码,但出现了这个错误,无法通过包“StrukturaStudent”找到对象方法“sifra”,请再次阅读文档$st应该是一个Student对象,而不是StrukturaStudenta。我尝试了上面的代码,但出现了此错误,无法通过包“StrukturaStudent”找到对象方法“sifra”,请再次阅读文档$st应该是学生对象,而不是StrukturaStudenta。