我如何根据papertype的条件来确定此变量的范围?
我已经尝试过几种方式而且我遇到了错误,我感到很困惑。
sub paperdisplay_getPaperLink {
my ( $self, $args ) = @_;
my $paper = $args->{paper};
my $linktext = $args->{linktext};
my $session = $args->{session};
my $query = $self->request;
my $password = $query->param('password');
if ( $paper->{Type} eq 'Break' ) {
my $url = $something;
} else {
my $url = $somethingelse;
}
my $link = qq(<a title="$linktext" target="other" href="$url">$linktext</a>);
return $link;
}
答案 0 :(得分:6)
您必须在要使用它的块中声明它。如果您在if
或else
块中声明它,它将只存在于那里。当块结束时,该变量将被销毁。
my $url;
if ($paper->{Type} eq 'Break') {
$url = $something
} else {
$url = $somethingelse
}
# $url still exists down here
答案 1 :(得分:4)
使用Conditional Operator初始化变量而无需if块:
my $url = $paper->{Type} eq 'Break'
? $something
: $somethingelse;