大家好,
这对于perl程序员来说非常简单,但不是像我这样的初学者,
我有一个xml文件,我使用XML :: Simple这样处理
my $file="service.xml";
my $xml = new XML::Simple;
my $data = $xml->XMLin("$file", ForceArray => ['Service','SystemReaction',
'Customers', 'Suppliers','SW','HW'],);
Run Code Online (Sandbox Code Playgroud)
倾销$data,它看起来像这样:
$data = {
'Service' => [{
'Suppliers' => [{
'SW' => [
{'Path' => '/work/service.xml', 'Service' => 'b7a'},
{'Path' => '/work/service1.xml', 'Service' => 'b7b'},
{'Path' => '/work/service2.xml', 'Service' => 'b5'}]}
],
'Id' => 'SKRM',
'Customers' =>
[{'SW' => [{'Path' => '/work/service.xml', 'Service' => 'ASOC'}]}],
'Des' => 'Control the current through the pipe',
'Name' => ' Control …Run Code Online (Sandbox Code Playgroud) 我试图将char变量转换为Unsigned int.我的代码是
char spi(char data)
{
//Start transmision
SPDR = data;
//Wait for transmision complete
while(!(SPSR & 0x80));
return SPDR;
}
unsigned int ReadAd(void)
{
unsigned int data;
ChipSelectAd(1);
//Read data
CheckStatus();
spi(0x58);
data = (spi(0xFF)<< 8);
data |= spi(0xFF);
return data;
}
Run Code Online (Sandbox Code Playgroud)
实际上我的问题是spi函数返回一个8位字符,所以上面的代码将char变量左移8bits然后将它分配给一个16位变量,结果总是为0.为了实际将数据移到左边我需要首先将它们转换为16位类型的变量.我试过这样的
char spi(char data)
{
//Start transmision
SPDR = data;
//Wait for transmision complete
while(!(SPSR & 0x80));
return SPDR;
}
unsigned int ReadAd(void)
{
unsigned int data;
ChipSelectAd(1);
//Read data
CheckStatus();
spi(0x58);
data = (unsigned int)((unsigned char)spi(0xFF)<< …Run Code Online (Sandbox Code Playgroud) 我在目录中有一些xml文件,因此我在该目录中搜索所需的xml文件,并使用下面的脚本将xml数据存储在哈希数据结构中.但我的问题是我需要在散列中保存每个xml文件的文件路径但是任何人都可以帮我如何在散列数据中保存文件路径我写的脚本就像这样
#!/usr/bin/perl
use warnings;
use strict;
use XML::Simple;
use Carp;
use File::Find;
use File::Spec::Functions qw( canonpath );
use Data::Dumper;
my @ARGV ="C:/Main/work"; die "Need directories\n" unless @ARGV;
find(
sub {
return unless ( /(_service\.xml)$/ and -f );
Hash_information();
return;
},
@ARGV
);
sub Hash_information {
my $path= $_;
my $xml = new XML::Simple;
my $data = $xml->XMLin("$path", ForceArray => [
'Service','SystemReaction','SW','HW','Component' , 'BM'],
KeyAttr=>{Service=>'Id'} );
print Dumper ($data);
return;
}
Run Code Online (Sandbox Code Playgroud)
使用上面的脚本我得到所有服务xml文件表单文件夹并使用XML :: Simple存储在哈希数据结构中.现在我想在散列数据结构中保存每个xml文件的文件路径.谁能帮我.
提前致谢