Raj*_*Raj 1 perl filenames parameter-passing
我将两个文件名从DOS批处理文件传递给Perl脚本.
我的$ InputFileName = $ ARGV [0]; my $ OutputFileName = $ ARGV [1];
只有输入文件在物理上存在,而Outputfile必须由脚本创建.
open HANDLE, $OutputFileName or die $!;
open (HANDLE, ">$OutputFileName);
open HANDLE, ">$OutputFileName" or die $!;
Run Code Online (Sandbox Code Playgroud)
这三个都失败了.
但是以下工作正常.
open HANDLE, ">FileName.Txt" or die $!;
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
编辑:错误消息是:在行nn的Batchfile.pl没有这样的文件或目录
正确的方法是使用三参数形式open(使用模式作为单独的参数)和词法文件句柄.也die没有资金D.
像这样
open my $out, '>', $OutputFileName or die $!;
Run Code Online (Sandbox Code Playgroud)
但是你的最后一个例子应该可以正常工作,假设你die在实际代码中拼写正确.
如果要提供不存在的文件名路径,则还需要创建中间目录.
模具字符串会告诉你确切的问题.当失败时你会得到什么信息?
| 归档时间: |
|
| 查看次数: |
6824 次 |
| 最近记录: |