2016-09-27 33 views
0

有沒有人在這裏看到這個問題?爲什麼我在試圖打開Filehandle時導致「或死」?

use FindBin '$Bin'; 

$scriptdir = $Bin; 
$folder= "64521459"; 
$file = "201608291350_60002015_1_Log-Minim.csv"; 

print "$scriptdir\\OK\\$folder\\$file"; 
open (OKBLABLA, ">", "$scriptdir\\OK\\$folder\\$file") or die "Can't create OK folder"; 
print OKBLABLA "success"; 
close OKBLABLA; 

看起來好像$folder部分是造成問題;當我刪除它,它的作品 - 任何想法爲什麼?腳本不會自己創建一個新目錄嗎?

+0

'open'不會創建目錄...而是嘗試使用'mkdir',或者如果您要創建的目錄的父目錄不存在,那麼'[File :: Path']中的'make_path'函數] (http://perldoc.perl.org/File/Path.html)。 – Dada

+0

@達達感謝,使用「使用File :: Path qw/make_path /;」,作品 –

+1

爲什麼你不要求Perl在錯誤信息中包含'open'失敗的原因? '死'不能創建OK文件夾:$!\ n「;' –

回答

3

不,open無法在我認識的任何語言的任何平臺上創建不存在的目錄。

+0

但它確實創建文件,很容易認爲它也會創建文件夾。呃,也感謝您糾正我的帖子 –

1

打印語句引用$folder變量。

但是,公開聲明是指不存在的$ordner變量。使用use strict; use warnings;在腳本的開頭輕鬆找到這類問題。

+0

對不起,這只是一個翻譯thingy在德國的「ordner」意思是「文件夾」。所以這不是問題 –

+4

@ZesaRex請複製並粘貼您使用的確切代碼。否則,人們會浪費時間來查找實際代碼中不存在的錯誤,並且必須浪費時間編輯問題並回答這樣的答案。沒有必要將變量名稱翻譯成英文;我們都可以閱讀Perl。 – ThisSuitIsBlackNot

+0

不錯,下次會這樣做:) –

相關問題