![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perlにて、
use CGI;
my $q = new CGI;
my $ufh = $q->upload('file');
などで$ufhにファイルハンドルを受け取り、
この直後で、アップロードなどを行うと正常に行われるのですが、
別の関数に渡してからアップロードを行うとファイル名がついた0バイトのファイルがアップロードされます。
&test($ufh);
test($){
$filename = $_[0];
while(read($filename , $buffer, 1024)){
$file .=$buffer;
}
my $basename;
my $exp;
my $files;
my $newfile;
my @files = split(/\\/, $file_name);
($basename, $exp) = split(/\./, $files[-1]);
$newfile = $basename . "." . $exp;
open(FILE, "> /tmp/$newfile");
binmode(FILE);
print(FILE $files);
close(FILE);
}
ファイルハンドルを変数に格納して持ちまわすことはできないのでしょうか?
よろしくお願いします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
No.2ベストアンサー
- 回答日時:
この場合は単にスペルミスだと思われます。
print(FILE $files);
これは
print(FILE $file);
これですね。
これでファイル出力ができると思います。
No.1
- 回答日時:
「use strict;」は付けていますか?
コンパイルエラーが一杯でてますよ。
D:\>perl -wc test.pl
Global symbol "$filename" requires explicit package name at test.pl line 3.
Global symbol "$filename" requires explicit package name at test.pl line 4.
Global symbol "$buffer" requires explicit package name at test.pl line 4.
Global symbol "$file" requires explicit package name at test.pl line 5.
Global symbol "$buffer" requires explicit package name at test.pl line 5.
Global symbol "$file_name" requires explicit package name at test.pl line 11.
test.pl had compilation errors.
余談ですが、括弧は余り付けないほうが見やすいですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAコードを張り付け後のエクセ...
-
python renameについて
-
巨大なテキストの最終行を取得...
-
grepコマンドについて
-
awk '{print $1}' file をもっ...
-
window.open でのファイル指定方法
-
バッチファイルの作り方(CSV→...
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
データの日付でソートをしたい
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
dos変数の%~dp0は powershellで...
-
VBAでCSVファイルの特定行を書...
-
Perl エラーログを指定の場所...
-
PerlからのCSV出力
-
MATLAB グローバル変数の宣言
-
時刻表を分でソートする方法を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
python renameについて
-
巨大なテキストの最終行を取得...
-
fgets で値が取得できない
-
Firefox で file:// で始まる U...
-
PerlでのUseless use...
-
【C++/CLI】ファイルオープンに...
-
drtファイルはどうしたら開...
-
csvファイルの横方向への改行に...
-
VBA テキストファイルを読み取...
-
MATLABのm-fileについて
-
ファイル全てを .xlsm に変更し...
-
WindowsでPerlをする際,1行目の...
-
並び方、
-
fopen64について
-
VBAコードを張り付け後のエクセ...
-
JSP URLに表示される拡張子 .jsp
-
重複ファイル名ある場合ファイ...
-
行を指定して削除する方法PERL
-
ファイルの存在の有無を確かめ...
おすすめ情報