Perl在调用方法中的应用
请告诉我这是什么意思Perl在调用方法中的应用,perl,Perl,请告诉我这是什么意思 my ( $keepers, $bogus, $unknown ) = TCO::Test::Param::test_params('session' => $s, 'expected' => $allowed_params); 关于测试方法 my %base_profile = TCO::Test::Param::std_profile(); my $profile = { 'session' => $base_profile
my ( $keepers, $bogus, $unknown ) =
TCO::Test::Param::test_params('session' => $s, 'expected' => $allowed_params);
关于测试方法
my %base_profile = TCO::Test::Param::std_profile();
my $profile = {
'session' => $base_profile{'session'},
'expected' => $base_profile{'params'},
};
my %config = validate( @_, $profile );
my ( $s, $gooduns ) = @config{ 'session', 'expected' };
my ( $keepers, $bogus, $unknown ) =
scrub_base( 'raw_params' => $s->{_raw_params}, 'expected' => $gooduns );
foreach ( keys %{$keepers} ) {
$keepers->{$_} = $keepers->{$_}->[-1];
}
clean_params( { 'params' => $keepers } );
# These are sometimes passed in by carts and must be squashed if they are.
delete $unknown->{x_exp_date} if ( $unknown->{x_exp_date} );
delete $unknown->{x_card_num} if ( $unknown->{x_card_num} );
delete $bogus->{x_exp_date} if ( $bogus->{x_exp_date} );
delete $bogus->{x_card_num} if ( $bogus->{x_card_num} );
delete $keepers->{x_exp_date} if ( $keepers->{x_exp_date} );
delete $keepers->{x_card_num} if ( $keepers->{x_card_num} );
return ( $keepers, $bogus, $unknown );
2) $sale->{state}{ind}=0;这是什么意思
我试图将
$keepers
打印到STDERR。然后它给出一个散列。我无法访问其中的值。我怎样才能访问它。请回复。TCO::Test::Param::Test_params子例程返回一个列表。您询问的行将返回值解压为三个不同的变量,$keepers
、$bogus
和$unknown
要查看$keepers
中的内容,可以转储哈希:
use Data::Dumper;
warn Dumper( $keepers );
TCO::Test::Param::Test_params
子例程返回一个列表。您询问的行将返回值解压为三个不同的变量,$keepers
、$bogus
和$unknown
要查看$keepers
中的内容,可以转储哈希:
use Data::Dumper;
warn Dumper( $keepers );
这是什么意思
这是对子例程的调用TCO::Test::Param::Test_params
。向它传递了四个参数。返回的前三个值存储在$keepers
、$bogus
和$unknown
中
然后它给出一个散列 这是对散列的引用。sub不能返回哈希,只能返回标量列表
我怎样才能访问它
TCO::Test::Param::Test_params
。向它传递了四个参数。返回的前三个值存储在$keepers
、$bogus
和$unknown
中
然后它给出一个散列 这是对散列的引用。sub不能返回哈希,只能返回标量列表
我怎样才能访问它
- 您的问题2:
$sale->{state}{ind} = 0;
这是什么意思
$sale
必须是对哈希的引用。为什么?因为后面跟着->{}
。尝试:
use Data::Dumper;
print Dumper($sale);
$sale
引用的哈希至少有一个键,称为state
。keystate
的值是对另一个散列的引用。另一个散列至少有一个键,称为ind
,语句将其值设置为零
即使键状态
不存在,也可以运行此语句。该语句将创建密钥及其值,以及第二个散列,所有这些都是自动创建的,这一过程称为自动激活
建议:一次只问一个问题。它使答案更清晰,更便于他人参考。正如子程序只能做一件事一样,你的问题也应该做一件事,出于同样的原因。你的问题2:
$sale->{state}{ind} = 0;
这是什么意思
$sale
必须是对哈希的引用。为什么?因为后面跟着->{}
。尝试:
use Data::Dumper;
print Dumper($sale);
$sale
引用的哈希至少有一个键,称为state
。keystate
的值是对另一个散列的引用。另一个散列至少有一个键,称为ind
,语句将其值设置为零
即使键状态
不存在,也可以运行此语句。该语句将创建密钥及其值,以及第二个散列,所有这些都是自动创建的,这一过程称为自动激活
建议:一次只问一个问题。它使答案更清晰,更便于他人参考。正如子程序只能做一件事一样,您的问题也应该做一件事,出于同样的原因。非常感谢,它正在工作。你能告诉我这是什么意思吗2)$sale->{state}{ind}=0;非常感谢,它正在工作。你能告诉我这是什么意思吗2)$sale->{state}{ind}=0;但我的问题是,如果{ind}是一个散列,那么我可以将其打印为该值。但当我试图将其打印为警告转储程序({ind})时。在错误日志上,它给出了一个错误,即“[error]Bareword“ind”在使用“strict subs”时不允许”。请回答我。我是新手Perl@user2089651:{ind}将只返回对新匿名哈希的引用。总之,ind只是一个键的名称。您需要
警告转储程序($sale->{state})
。但我的问题是,如果{ind}是一个散列,那么我可以将其打印为该值。但当我试图将其打印为警告转储程序({ind})时。在错误日志上,它给出了一个错误,即“[error]Bareword“ind”在使用“strict subs”时不允许”。请回答我。我是新手Perl@user2089651:{ind}将只返回对新匿名哈希的引用。总之,ind只是一个键的名称。您需要警告转储程序($sale->{state})
。