Cの場合(未コンパイル。間違っているかもしれないので雰囲気だけ。)
int main(void){
FILE *fp;
openfile(&fp);
fprintf(fp,"hogehoge\n");
fclose(fp);
return 0;
}
void openfile(FILE *pp){
if((*pp=fopen("hoge.txt","w"))==NULL){
exit(1);
}
}
Perlの場合
use strict;
use warnings;
main;
sub main{
my $fp;
openfile($fp);
print *fp,"hogehoge\n";
close(*fp);
}
sub openfile(\$){
my $pp=shift;
open(*pp,">","hoge.txt") or die $!;
}
perlでこれを作るのに調べ倒した。
普通にリファレンスで渡しても戻ってこないし。
でも、動きはするだろうけどおすすめできるかって言うと謎。
個人的にはshell scriptより書きやすいから使っているに過ぎないので、
CGIとか作る参考にはならないね、きっと。
続・初めてのPerl 改訂版/Randal L. Schwartz

¥3,360
Amazon.co.jp
int main(void){
FILE *fp;
openfile(&fp);
fprintf(fp,"hogehoge\n");
fclose(fp);
return 0;
}
void openfile(FILE *pp){
if((*pp=fopen("hoge.txt","w"))==NULL){
exit(1);
}
}
Perlの場合
use strict;
use warnings;
main;
sub main{
my $fp;
openfile($fp);
print *fp,"hogehoge\n";
close(*fp);
}
sub openfile(\$){
my $pp=shift;
open(*pp,">","hoge.txt") or die $!;
}
perlでこれを作るのに調べ倒した。
普通にリファレンスで渡しても戻ってこないし。
でも、動きはするだろうけどおすすめできるかって言うと謎。
個人的にはshell scriptより書きやすいから使っているに過ぎないので、
CGIとか作る参考にはならないね、きっと。
続・初めてのPerl 改訂版/Randal L. Schwartz

¥3,360
Amazon.co.jp