我从Perl插件中获得了这部分内容.我不明白它的作用.它是关联数组的数组吗?如果是这样,那么它不应该以@开头吗?任何人都可以对这个问题有所了解吗?
my $arguments =
[ { 'name' => "process_exp",
'desc' => "{BasePlugin.process_exp}",
'type' => "regexp",
'deft' => &get_default_process_exp(),
'reqd' => "no" },
{ 'name' => "assoc_images",
'desc' => "{MP4Plugin.assoc_images}",
'type' => "flag",
'deft' => "",
'reqd' => "no" },
{ 'name' => "applet_metadata",
'desc' => "{MP4Plugin.applet_metadata}",
'type' => "flag",
'deft' => "" },
{ 'name' => "metadata_fields",
'desc' => "{MP4Plugin.metadata_fields}",
'type' => "string",
'deft' => "Title,Artist,Genre" },
{ 'name' => "file_rename_method",
'desc' => "{BasePlugin.file_rename_method}",
'type' => "enum",
'deft' => &get_default_file_rename_method(), …Run Code Online (Sandbox Code Playgroud) 我有一个二进制文件,并获得我使用"解包"功能的内容.
我的脚本可以运行32位exe或64位exe.因此我使用了以下代码:
if ( $ENV{PROCESSOR_ARCHITECTURE} eq 'x86' )
{
@data = unpack( "LL8", $binary );
}
else
{
@data = unpack( "Q8", $binary );
}
print Dumper \@data;
Run Code Online (Sandbox Code Playgroud)
但是当我使用32位Active Perl和64位Active perl编译器执行相同操作时,我得到的结果不同:
32位:
$ VAR1 = [129864071,0,47193587,0,16448777,0,41067198,0,129];
64位:
$ VAR1 = [129864071,47193587,16448777,41067198,129,365173507,25208052,152155982]
造成这种差异的原因是什么?如何在仍然使用32位无符号长和64位无符号四元组值的同时使它们相似?
我在Perl中编写一个需要长数据类型而不是整数的应用程序.我怎样才能做到这一点.例如;
my $num = sprintf('%ld', 27823221234);
print $num;
Run Code Online (Sandbox Code Playgroud)
输出不是很长,而是整数.
给出以下变量:
$test = {
'1' => 'A',
'2' => 'B',
'3' => 'C',
'4' => 'G',
'5' => 'K',
}
Run Code Online (Sandbox Code Playgroud)
如何在不知道我拥有哪些密钥的情况下循环完成所有分配?
我想填充一个选择框,其结果为标签,键为隐藏值.
嗨,我有一个哈希哈希,包含班级名称,注册学生人数和学生姓名.
如何打印此哈希而不重复第二级键.
示例:我填写的哈希数据是Science Class,3名学生就读于George,Lisa,Mathias和Math Class,4名学生注册了Peter,George,Anna,Martin.
my %register=();
$register{$className}->{$count_students}=$student_name; # Fill the hash.
foreach my $key ( keys %register ){
print "$key: ";
foreach my $class ( keys %{ $register{$key} } ){
print "$class=$register{$key}->{$class}\n";
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的结果如下:
Science_class:2 = Lisa
1 = George
3 = Mathias
Math_class:2 = Anna
1 = Martin
3 = Peter
4 = George
但我希望我的结果如下:
Science_class:3 - > Lisa,George,Mathias
Math_class:4 - > Anna,Martin,Peter,George
如何更正我的脚本?帮帮我.
我正在尝试修改现有的perl脚本以支持地理编码.找到了这个模块:http://metacpan.org/pod/Geo :: Coder :: Google
我只是无法弄清楚如何从它返回的哈希结构中提取数据(我不是一个perl编码器,这只是我必须解决的一些遗留脚本).
{
'AddressDetails' => {
'Country' => {
'AdministrativeArea' => {
'SubAdministrativeArea' => {
'SubAdministrativeAreaName' => 'San Francisco',
'Locality' => {
'PostalCode' => {
'PostalCodeNumber' => '94107'
},
'LocalityName' => 'San Francisco',
'Thoroughfare' => {
'ThoroughfareName' => '548 4th St'
}
}
},
'AdministrativeAreaName' => 'CA'
},
'CountryNameCode' => 'US'
}
},
'address' => '548 4th St, San Francisco, CA 94107, USA',
'Point' => {
'coordinates' => [
'-122.397323',
'37.778993',
0
] …Run Code Online (Sandbox Code Playgroud) 我在Perl中有以下代码段:
my $a1 = [ qw(rock pop musical) ];
my $b1 = [ qw( mystery action drama )];
my $c1 = [ qw( biography novel periodical)];
my %media = (
music => $a1,
file => $b1,
print => $c1
);
Run Code Online (Sandbox Code Playgroud)
我尝试按如下方式打印:
use Data::Dumper;
print Dumper (%media);
Run Code Online (Sandbox Code Playgroud)
我懂了:
$VAR1 = 'file';
$VAR2 = [
'mystery',
'action',
'drama'
];
$VAR3 = 'music';
$VAR4 = [
'rock',
'pop',
'musical'
];
$VAR5 = 'print';
$VAR6 = [
'biography',
'novel',
'periodical'
];
Run Code Online (Sandbox Code Playgroud)
它像列表一样打印哈希.我所期待的是这样的东西,它表示它是一个哈希.
$VAR1 = …Run Code Online (Sandbox Code Playgroud) 我通过这样做在Perl中声明了一个哈希:
my %hash = ();
Run Code Online (Sandbox Code Playgroud)
我继续向哈希添加元素.有时,$hash{$x}没有定义,意味着它可能是null.因此,当我尝试打印它时,我什么也得不到.我希望0在$x没有定义条目的情况下看到.有人能告诉我该怎么做?如何初始化哈希元素0?
有什么区别:
my %x;
push @{$x{'12'}}, ();
Run Code Online (Sandbox Code Playgroud)
和:
my %y;
$y{'12'} = ();
Run Code Online (Sandbox Code Playgroud)
为什么以下工作x而不是y?
my @x1 = @{$x{'12'}}; #legal
my @y1 = @{$y{'12'}}; #illegal
Run Code Online (Sandbox Code Playgroud) 考虑以下代码,例如:
@array=(1..10);
print @array;
print "@array";
The output is as follows:
12345678910
1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)