我有一个这样的CSV文件:
name,email,salary
a,b@b.com,1000
d,e@e.com,2000
Run Code Online (Sandbox Code Playgroud)
现在,我需要将其转换为Perl中的哈希映射数组,所以当我执行以下操作时:
table[1]{"email"}
Run Code Online (Sandbox Code Playgroud)
它返回e@e.com.
我写的代码是:
open(DATA, "<$file") or die "Cannot open the file\n";
my @table;
#fetch header line
$line = <DATA>;
my @header = split(',',$line);
#fetch data tuples
while($line = <DATA>)
{
my %map;
my @row = split(',',$line);
for($index = 0; $index <= $#header; $index++)
{
$map{"$header[$index]"} = $row[$index];
}
push(@table, %map);
}
close(DATA);
Run Code Online (Sandbox Code Playgroud)
但我没有得到理想的结果..你可以帮忙吗?提前致谢...
我的日期格式如下: 05/26/2013 06:08:00
上述日期的时区是 GMT -7
我如何将上述内容更改为 GMT 日期和时间,格式为:2013 年 5 月 26 日 13:08:00 GMT
注意:我无法安装任何 perl 模块。我知道我可以通过 DateTime 轻松完成此操作,但我无法安装它。
谢谢。
我正在尝试打印符合我特定条件的设备列表.当我将所有内容打印到屏幕上时,效果很好.但是,当我将其打印到文件时,它只打印一行.我是perl的新手,所以任何帮助都将不胜感激.谢谢
$dbConnection = &openConnection();
# run the "list_device" command via the initial connection
my $device_list = $dbConnection->list_device();
foreach my $listDevices ($device_list->result()) {
if ( ($listDevices->model !~ /PIX/)
&& ($listDevices->model !~ /ASA/)
&& ($listDevices->model !~ /ACE/)
&& ($listDevices->driverName !~ /Context/)
&& ($listDevices->hostName =~ /^ls1.*/i)
&& ($listDevices->vendor =~ /Cisco/)
) {
#create device hash for LS
$deviceHash{"deviceID"} = $listDevices->deviceID;
$deviceHash{"deviceType"} = $listDevices->deviceType;
$deviceHash{"vendor"} = $listDevices->vendor;
$deviceHash{"model"} = $listDevices->model;
$deviceHash{"primaryIPAddress"} = $listDevices > primaryIPAddress;
$deviceHash{"hostName"} = $listDevices->hostName;
# mapping array
my @returnData = …Run Code Online (Sandbox Code Playgroud) 我对线条感到困惑
use Exporter;
our @EXPORT =qw(a b);
Run Code Online (Sandbox Code Playgroud)
在一个包中。
我见过没有使用 @EXPORT 的包并且工作得很好。相当困惑......我已经用谷歌搜索了但没有找到太多解释。
我的问题是什么时候应该使用@EXPORT?不使用它的原因是什么?
我正在写两个perl脚本,需要一个包含长字符串列表的数组这里我想在一个单独的perl包中声明我的数组并使用这个包在其他两个perl脚本中访问该数组
你能告诉我怎么能这样做
我检查了perl cpan模块Exporter,但是可以发现它可以导出子程序,我只想要导出我的数组而不是任何子程序
先感谢您.
我正在尝试执行一个perl脚本,并且我已经让它工作之前我在它所在的文件夹中运行它...即,以下工作.
\higherFolder\folder>UpdateTestCasesScript.pl Test.feature Test_Cases.xls
Run Code Online (Sandbox Code Playgroud)
当我尝试在该文件夹的命令行OUTSIDE上运行此脚本时Buuuuut
\HigherFolder>folder\UpdateTestCasesScript.pl RealFile.feature folder\Test_Cases.xls
Run Code Online (Sandbox Code Playgroud)
我得到这个奇怪的错误:
Can't locate Spreadsheet/ParseExcel.pm in @INC <@INC contains: Spreadsheet/Parse
Excel.pl C:/Strawberry/perl/site/lib C:/strawberry/perl/vendor/lib C:/strawberry
/perl/lib .> at C:...\HigherFolder\folder\UpdateTestCasesScript.pl line 4
Run Code Online (Sandbox Code Playgroud)
但是如果你看一下我脚本的前几行......它们如下:
#!/usr/bin/perl -w
use lib 'Spreadsheet/ParseExcel.pm';
use Spreadsheet::ParseExcel;
Run Code Online (Sandbox Code Playgroud)
所以我有一个想法,它可能会以某种方式查看错误的@INC,但有没有人知道如何解决它?
谢谢!!!
我想使用模块Perl :: Critic :: Policy :: ValuesAndExpressions :: ProhibitMagicNumbers来检查.C文件中的幻数
use strict;
use warnings;
use Perl::Critic;
open(my $FILE, "< test.c") or die $!;
my $critic = Perl::Critic->new();
my @violations = $critic->critique($FILE);
print @violations;
close($FILE);
Run Code Online (Sandbox Code Playgroud)
如果我使用Perl :: Critic,我得到错误无法解析代码:解析Perl文档时出现未知错误
如果我使用Perl :: Critic :: Policy :: ValuesAndExpressions :: ProhibitMagicNumbers,我得到错误无法通过包"Perl :: Critic"找到对象方法"new"
我正在尝试使用Perl读取XML表单,但我不能使用任何XML模块,如XML :: Simple,XML :: Parse.
它是一个简单的XML表单,包含一些基本信息和MS Doc附件.我想阅读此XML并下载此附加的Doc文件,然后在屏幕上打印XML信息.
但是我不知道如何在没有XML模块的情况下如何做到这一点,我听说XML文件可以使用Data :: Dumper进行解析,但我不熟悉这个模块,所以没有得到如何做到这一点.
如果没有XML模块有任何办法可以帮助我吗?
示例XML:
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
</catalog>
Run Code Online (Sandbox Code Playgroud) 我是一个学习perl的新人,并且正在努力工作.我真的陷入了困境,在过去的4小时里一直没有任何结果.
我在目录中使用了一堆自定义模块,然后我获得了实现新知识库的票证,因此我在Moduledirectory中添加了一个新模块.添加后,当我尝试访问MyModule时,它根本不起作用.我明白了
Can't locate FolderName/MyModuleName.pm in @INC
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗.这真的很烦人.我试图重启apache服务器,但仍然出现相同的错误.
我也尝试编译我的模块,但是我得到了相同的错误,除了模块的名称不同,它是我在MyModule中调用/使用的那个.
如果你能帮助我,请告诉我.提前致谢.
编辑:添加更多详细信息,我得到的确切错误(可读性换行符)是:
Can't locate Net2Net/KnowledgeBase.pm in @INC (@INC contains:
(DOCUMENT_ROOT)/bin
/usr/local/lib/perl5/5.8.8/sun4-solaris
/usr/local/lib/perl5/5.8.8
/usr/local/lib/perl5/site_perl/5.8.8/sun4-solaris
/usr/local/lib/perl5/site_perl/5.8.8
/usr/local/lib/perl5/site_perl
.
) at /data1/web/intradev.com-80/docs/gss/kb/ajax-kb-update.cgi line 6.
BEGIN failed--compilation aborted at /data1/web/intradev.com-80/docs/gss/kb/ajax-kb-update.cgi line 6.
Run Code Online (Sandbox Code Playgroud) 我对Perl模块感到困惑.我得到一个模块可以用来转储一大堆子,整理主代码.
但是,模块之间的关系是什么?
模块可以"使用"其他模块吗?
我必须使用导出,还是可以放弃那些东西?
我如何解决循环使用?(Security.pm使用Html.pm和Html.pm使用Security.pm).我知道明显的答案,但在某些情况下我需要使用Security.pm例程,Html.pm反之亦然 - 不知道如何解决问题.
如果我从所有模块中删除所有"use"子句......那么我必须使用完整的子限定符.例如,Pm::Html::get_user_friends($dbh, $uid)将用于Security确定朋友是否是被禁用的用户(被禁止的是其中一部分Security).
我只是没有得到这个模块的东西.所有"教程"只涉及一个模块,从不多重,也不使用真实世界的例子.
我遇到多个模块的唯一一次是使用OO代码.但没有任何东西可以确切地告诉我多个模块如何相互作用.
use strict;
use warnings;
use 5.010;
my $value;
my $key;
my %hash_keysort = (
servlet => 'true',
servlet_dude => 123,
hai => "null",
array => 123
);
Run Code Online (Sandbox Code Playgroud)
我想获得相同的输出.
我试过这个包使用Sort::Naturally.
即使我使用自然排序,我也无法获得相同的输出.每次钥匙都在变化.
预期产量:
servlet : true
servlet_dude : 123
hai : null
array : 123
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个nsort功能.我无法得到因为它是钥匙.
我尝试了所有排序类型.我无法解决问题.
我需要每次都以相同的顺序获取密钥.但事情是密钥药水一直在改变..是否有任何逻辑来获得相同顺序的密钥.我的目的是每次都需要在不改变魔药的情况下获得钥匙.
#!/usr/bin/perl
use Sort::Naturally;
use strict;
use warnings;
my $value;
my $key;
my %hash_keysort = (
servlet => 'true',
servlet_dude => 123,
hai => "null",
array => [ 123, "null", …Run Code Online (Sandbox Code Playgroud)