Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl-X64bits系统和X32bits系统_Perl - Fatal编程技术网

Perl-X64bits系统和X32bits系统

Perl-X64bits系统和X32bits系统,perl,Perl,我想问一下为什么我的脚本不能在Windowsx64bits系统中工作。此脚本以前在X32bits中工作。但我不知道为什么会出现“无法打开输入文件”这样的错误 在64位系统中没有输出 #!/usr/bin/env perl use strict; use warnings 'all'; my $directory = 'D:/Script_Code/Perl/Test/Datalog/Unit_80'; my $testna = 'FW OTP Check UVLO VIN Voltage'

我想问一下为什么我的脚本不能在Windowsx64bits系统中工作。此脚本以前在X32bits中工作。但我不知道为什么会出现“无法打开输入文件”这样的错误

在64位系统中没有输出

#!/usr/bin/env perl

use strict;
use warnings 'all';

my $directory = 'D:/Script_Code/Perl/Test/Datalog/Unit_80';

my $testna = 'FW OTP Check UVLO VIN Voltage';
my $testpin = 'vrect';
my $testnb = 'FW OTP Checksum Readback';
my $testnc = 'FW OTP Checksum Difference';
my $testnd = 'FW Checksum Pat Pin Fail Count';

my @header = ( 'Unit#', 'Test_Name', 'Pin_Name', 'Measure_Data', 'Upper_limit' );
my $format = "%-8s %-40s %-15s %-15s %-1s\n";
my $outfile = "$directory.sdc";

open (OUT, ">$outfile" );
open (INF, "$directory") || die (" can not open input file \n" );

printf $format, @header;
printf OUT $format, @header;

while ( <INF> ) {

if ( /Device#:\s*(\d+)/ )
{   $unit = $1;
    next;    }

chomp;

my @fields = split /\s{2,}/;

if ( $fields[2] eq $testna and $fields[3] eq $testpin ) {             # TEMP_SENSE_VBE
    printf $format, $unit, $fields[2], $fields[3], $fields[5];
    printf OUT $format, $unit, $fields[2], $fields[3], $fields[5];
}
if ( $fields[2] eq $testnb ) {             # TEMP_SENSE_VBE
    printf $format, $unit, $fields[2], $fields[3], $fields[5];
    printf OUT $format, $unit, $fields[2], $fields[3], $fields[5];
}
if ( $fields[2] eq $testnc ) {             # TEMP_SENSE_VBE
    printf $format, $unit, $fields[2], $fields[3], $fields[5], $fields[6];
    printf OUT $format, $unit, $fields[2], $fields[3], $fields[5], $fields[6];
}
if ( $fields[2] eq $testnd ) {             # TEMP_SENSE_VBE
    printf $format, $unit, $fields[2], $fields[3], $fields[5], $fields[6];
    printf OUT $format, $unit, $fields[2], $fields[3], $fields[5], $fields[6];
}

}
      close (INF) || die "cannot close input file !!";
      close (OUT);
#/usr/bin/env perl
严格使用;
使用“全部”警告;
my$directory='D:/Script_Code/Perl/Test/Datalog/Unit_80';
my$testna=‘FW OTP检查UVLO VIN电压’;
我的$testpin='vrect';
my$testnb='FW OTP校验和回读';
my$testnc='FW OTP校验和差';
my$testnd='FW校验和Pat Pin失败计数';
my@header=('Unit#','Test#u Name','Pin_Name','Measure_Data','Upper_limit');
my$format=“%-8s%-40s%-15s%-15s%-1s\n”;
my$outfile=“$directory.sdc”;
打开(OUT,“>$outfile”);
打开(INF,“$directory”)| | die(“无法打开输入文件”\n”);
printf$格式,@header;
打印输出$格式,@header;
而(){
如果(/Device#):\s*(\d+/)
{$unit=$1;
下一步;}
咀嚼;
my@fields=split/\s{2,}/;
如果($fields[2]eq$testna和$fields[3]eq$testpin){
printf$format、$unit、$fields[2]、$fields[3]、$fields[5];
打印输出$format、$unit、$fields[2]、$fields[3]、$fields[5];
}
如果($fields[2]eq$testnb){#TEMP_SENSE_VBE
printf$format、$unit、$fields[2]、$fields[3]、$fields[5];
打印输出$format、$unit、$fields[2]、$fields[3]、$fields[5];
}
if($fields[2]eq$testnc){TEMP#u SENSE_VBE
printf$format、$unit、$fields[2]、$fields[3]、$fields[5]、$fields[6];
打印输出$format、$unit、$fields[2]、$fields[3]、$fields[5]、$fields[6];
}
如果($fields[2]eq$testnd){TEMP\u SENSE\u VBE
printf$format、$unit、$fields[2]、$fields[3]、$fields[5]、$fields[6];
打印输出$format、$unit、$fields[2]、$fields[3]、$fields[5]、$fields[6];
}
}
关闭(INF)| | die“无法关闭输入文件!!”;
收尾;

这与Perl构建、OS构建或系统的体系结构无关

首先检查您的错误

open (OUT, ">", $outfile)
   or die("Can't create \"$outfile\": $!\n");
open (INF, "<", $directory)
   or die("Can't open \"$directory\": $!\n");
open(OUT,“>”,$outfile)
或者死亡(“无法创建\“$outfile\”:$!\n”);

公开(INF,"如果您有两个问题,请分别提问。不可能同时在一个问题上勾选两个正确答案。我看不出这在64位平台上不起作用的任何原因。您是否收到任何错误消息?请回答您的问题并正确缩进您的代码,这很难阅读。@choroba我已将其转换为一个问题。@simbabque整个代码都是这样的。如何正确地执行我的代码?按照您拥有代码的方式阅读它并不容易。我相信如果缩进得更好一点,阅读起来会更容易。使用代码。我的错误是“无法打开……没有这样的文件或directorv”