小编Sen*_*mar的帖子

Perl哈希和数组

我有一个包含28个元素的数组.

我将数组内容复制到哈希中.

如果我尝试打印哈希,它不会显示所有键和值.

代码如下,

@new;
%hash = @new;
foreach $food (keys %hash) 
{
 $color = $hash{$food};
 print "$food is $color.\n";
}
Run Code Online (Sandbox Code Playgroud)

输出是::

attribute is Mandatory.
min is 0X00.
value is 778.
max is 9940486857.
name is Security_header.
type is nibble.
Run Code Online (Sandbox Code Playgroud)

数组@new内容是,

name Protocol_discriminator attribute Mandatory value 778 min 0X00 max 994048685 value 7 min 0 max F name Security_header attribute Mandatory type nibble value 778 min 0X00 max 9940486857
Run Code Online (Sandbox Code Playgroud)

如果我尝试遍历散列,我希望将数组的所有内容复制到散列中并进行打印.但有些如何只将部分数组内容复制到哈希中.

任何人都可以帮助克服这个问题.我过去两天都在苦苦挣扎.

谢谢Senthil.

perl hash

2
推荐指数
2
解决办法
458
查看次数

如何在Perl中避免警告?

我有一小段代码用于在这样的文本文件中打印内容,

use strict;
use warnings;

open (FILE, "2.txt") || die "$!\n";

my $var = <FILE>;
while ($var ne "")
{
    print "$var";
    $var = <FILE>;
} 
Run Code Online (Sandbox Code Playgroud)

文字文件是,

line 1
line 2
line 3 
Run Code Online (Sandbox Code Playgroud)

运行代码后,我收到这样的警告,

line 1
line 2
line 3
Use of uninitialized value $var in string ne at del.pl line 10, <FILE> line 3.
Run Code Online (Sandbox Code Playgroud)

如何克服这个警告.

perl warnings

1
推荐指数
1
解决办法
302
查看次数

为什么我从readdir获取一个数字而不是一个文件名列表?

我有一段用于searchnig目录的Perl代码,如果找到匹配则显示该目录的内容.代码如下:

$test_case_directory = "/home/sait11/Desktop/SaLT/Data_Base/Test_Case";
$xml_file_name = "sample.xml"

$file_search_return = file_search($xml_file_name);
print "file search return::$file_search_return\n";


sub file_search
{
    opendir (DIR, $test_case_directory) or die "\n\tFailed to open directory that contains the test case xml files\n\n";

    print "xml_file_name in sub routines:: $xml_file_name\n";

    $dirs_found = grep { /^$xml_file_name/i } readdir DIR;
    print "Files in the directory are dirs_found :: $dirs_found\n";
    closedir (DIR);
    return $dirs_found;
}
Run Code Online (Sandbox Code Playgroud)

输出是,

xml_file_name in sub routines:: sample.xml
Files in the directory are dirs_found :: 1
file search return::1
Run Code Online (Sandbox Code Playgroud)

它没有返回找到的文件名.相反,它总是返回数字1.

我不知道为什么它没有返回 …

directory perl

1
推荐指数
1
解决办法
167
查看次数

Perl XML解析

我使用XML :: Simple来解析XML文件.输出是一个哈希值.(使用Data :: Dumper)

示例代码,XML文件在下面给出了输出.

Perl代码:

use XML::Simple;
use Data::Dumper;

$xml = new XML::Simple;

$data = $xml->XMLin("spam.xml");

print Dumper($data);
Run Code Online (Sandbox Code Playgroud)

XML文件内容(输入到解析器)::

<Attach_request>
    <Protocol_discriminator>
        <name> Protocol_discriminator </name>
        <attribute> Mandatory </attribute>
        <type> nibble </type>
        <value> 7 </value>
        <min> 0 </min>
        <max> F </max>
    </Protocol_discriminator>
    <Security_header>
        <name> Security_header </name>
        <attribute> Mandatory </attribute>
        <type> nibble </type>
        <value> 7 </value>
        <min> 0 </min>
        <max> F </max>
    </Security_header>
    <Security_header1>
        <name> Security_header </name>
        <attribute> Mandatory </attribute>
        <type> nibble </type>
        <value> 7 </value>
        <min> 0 </min>
        <max> F …
Run Code Online (Sandbox Code Playgroud)

xml perl

0
推荐指数
1
解决办法
548
查看次数

什么是标签在"下一个"声明中的目的?

在Perl中,我该如何使用该next语句?在所有示例程序中,我看到声明如下:next LINEP

我不明白那个标签在做什么.任何人都能用一个容易理解的例子来帮助我吗?

perl

0
推荐指数
1
解决办法
1318
查看次数

如何使用XML :: Simple读取XML文件中的值的顺序?

我使用XML :: Simple来解析XML文件.代码在下面给出了XML文件,

use Tie::IxHash;

tie %$data, "Tie::IxHash";

use XML::Simple;
use Data::Dumper;

$xml = new XML::Simple;
$data = $xml->XMLin("ship_order.xml");
print Dumper($data);
Run Code Online (Sandbox Code Playgroud)

XML文件,(ship_order.xml)

<?xml version="1.0" encoding="UTF-8" ?> 

<shipment>
    <shiptoaddress>
        <name>Prasad</name> 
        <address>AnnaNagar</address> 
    </shiptoaddress> 
    <items>
        <quantity>5</quantity> 
        <price>100</price> 
    </items> 
    <items>
        <quantity>6</quantity> 
        <price>50</price> 
    </items>
    <num_of_items>2</num_of_items>
</shipment>
Run Code Online (Sandbox Code Playgroud)

即使我使用Tie :: IxHash模块,输出也没有按顺序排列.

我的输出:

$VAR1 = {
          'num_of_items' => '2',
          'shiptoaddress' => {
                             'name' => 'Prasad',
                             'address' => 'AnnaNagar'
                           },
          'items' => [
                     {
                       'quantity' => '5',
                       'price' => '100'
                     },
                     {
                       'quantity' => '6',
                       'price' => '50'
                     } …
Run Code Online (Sandbox Code Playgroud)

xml perl hash

0
推荐指数
1
解决办法
2468
查看次数

如何使用Perl在目录中搜索特定文件?

我在目录中有一个文件,我想一次从目录中选择一个特定的文件.

代码如下:

$xml_file_name = <STDIN>;
chomp ($xml_file_name);

@o = file_search($xml_file_name);
print "file::@o\n";

sub file_search
{
    opendir (DIR, "/home/sait11/Desktop/test/Test cases") or die "Failed to open directory\n";
    @dirs_found = grep { /$xml_file_name/ } readdir DIR;
    closedir (DIR);
#   print "dir ::@dirs_found\n";
    return @dirs_found;
}
Run Code Online (Sandbox Code Playgroud)

我正在输入要返回的文件名sample.xml.但是在@dirs_found变量中,所有以's'开头的文件名都会被存储.

如何一次找出确切的一个文件?

perl

-1
推荐指数
1
解决办法
1万
查看次数

标签 统计

perl ×7

hash ×2

xml ×2

directory ×1

warnings ×1