Tôi đang có một kịch bản perl mở ra một tập tin và viết một số dữ liệu trong đó. Đôi khi tệp này chỉ có quyền đọc trên một số máy. Đối với những trường hợp như vậy, hiện tại tập lệnh chết vì nó không thể mở tệp. Yêu cầu của tôi là trong trường hợp này, tôi muốn kịch bản của tôi tiếp tục và thay vì viết nội dung trong tệp, đặt nó trong STDOUT. Tôi sẽ sử dụng warn
thay vì chết, nhưng tôi muốn biết tôi có thể bí danh xử lý tệp của mình FILE1
đến STDOUT
sao cho tôi không cần phải sửa đổi mã còn lại, lý do trong mã thực tế của tôi print FILE1 <>
có mặt ở nhiều nơi và không có thể cho tôi đặt các điều kiện if\else
ở mọi nơi. Tôi muốn rằng tôi sẽ bí danh FILE1
đến STDOUT
sao cho lệnh in sẽ xuất ra trong STDOUT hoặc ghi vào tệp tùy thuộc vào giá trị được đặt trong FILE1
tệp có tay. Có thể sử dụng perl?Bí danh tập tin xử lý để STDOUT trong perl
$file = "testfile.txt";
open(FILE1, ">> $file") or die "Can not read file $file: $! \n";
print FILE1 "Line1 \n";
print FILE1 "Line2 \n";
print FILE1 "Line3 \n";
print FILE1 "Line4 \n";
close FILE1
có thể trùng lặp của http://stackoverflow.com/questions/3807231/how-can- i-test-if-i-can-write-to-a-filehandle – devnull