Perl Can';我似乎没有得到一个输出,我不知道为什么

Perl Can';我似乎没有得到一个输出,我不知道为什么,perl,Perl,我有一个perl代码,基本上打开一个文件,读取它,然后打印它,但由于某种原因,当我运行它时,我似乎无法得到任何输出或任何错误,我不知道为什么 这是我的密码: #!usr/bin/perl $syslogFile = '/Home/osboxes/Documents/syslog'; open(INFO, $syslogFile); @lines = <INFO>; close(INFO); print @lines; #!usr/bin/perl $syslogFile='/Ho

我有一个perl代码,基本上打开一个文件,读取它,然后打印它,但由于某种原因,当我运行它时,我似乎无法得到任何输出或任何错误,我不知道为什么

这是我的密码:

#!usr/bin/perl

$syslogFile = '/Home/osboxes/Documents/syslog';
open(INFO, $syslogFile);
@lines = <INFO>;
close(INFO);
print @lines;
#!usr/bin/perl
$syslogFile='/Home/osbox/Documents/syslog';
打开(信息$syslogFile);
@行=;
关闭(信息);
打印@行;

这就是为什么您需要做两件事:

  • 启用
    严格使用
    使用警告在代码的开头
    
  • 检查
    open
    中的返回代码
我还建议3 arg open比使用默认值更可取:

open ( my $input, '<', $syslogfile ) or die $!; 

open(我的$input,'不应该停止它的工作-它默认为read。
open()或die$!
应该告诉你一些事情……而且,
使用strict
使用warnings
会很有用。@Sobrique-hmm有趣,我不知道。我假设有一个错误,然后
或die“$!”
将显示。检查文件路径是的,它确实显示没有这样的文件或目录,不知道为什么我要猜测文件不存在。但可能是拼写错误(或大小写错误)我将文件拖到终端中,以确保文件路径为/home/osbox/Documents/syslog',仍然是相同的错误,但现在它在未打开的文件句柄上的“open(my$info),@dbaclio Filesystems on*nix”行包含readline()(我假设您使用的是基于脚本中的shebang)几乎总是区分大小写。
/home/osboxes/Documents/syslog
/home/osboxes/Documents/syslog
@ThisSuitesBlack不抱歉,忘了提到我尝试过home和home,但都出现了相同的错误。我也尝试过使用sudo,似乎syslog文件是我的问题,我正在努力工作现在就知道如何打开这个文件。
#!/usr/bin/env perl
use strict;
use warnings;

my $syslogFile = '/Home/osboxes/Documents/syslog';
open(my $info, '<', $syslogFile) or die $!; 
my @lines = <$info>;
close($info) or warn $!;
print @lines;