N60-BASICのプロフィール
- ベストアンサー数
- 17
- ベストアンサー率
- 80%
- お礼率
- 0%
- 登録日2010/03/18
- NET::SFTP::FOREIGN
perlモジュールのnet::sftp::foreignについてですが、$sftp->chmodと打っても、サーバ上のファイルのパーミッションを変えることができません。 $sftp->にchmodのコマンドは使えないのですか? また、パーミッションを変えるコマンドが他にある場合、それも教えて下さい。
- NET::SFTP::FOREIGN
perlモジュールのnet::sftp::foreignについてですが、$sftp->chmodと打っても、サーバ上のファイルのパーミッションを変えることができません。 $sftp->にchmodのコマンドは使えないのですか? また、パーミッションを変えるコマンドが他にある場合、それも教えて下さい。
- NET::SFTP::FOREIGN
perlモジュールのnet::sftp::foreignについてですが、$sftp->chmodと打っても、サーバ上のファイルのパーミッションを変えることができません。 $sftp->にchmodのコマンドは使えないのですか? また、パーミッションを変えるコマンドが他にある場合、それも教えて下さい。
- Perlでのファイルの扱いでつまづいております。
やりたいことは、"ファイルAを読み取り、その内容に処理を施したものをファイルBに書き込むという処理"です。 その上で、"ファイルBに書き込んだ内容を書き込みと同時に読み取り、 その上である条件にマッチした文を書き換える"といったことを実現したいです。 もともとのファイルの容量が非常に大きいので、何度もループを使うといったことはなるべく避けたいため、 ファイルBの書き込み・読み込み・書き換えを同時に行いたいのですが、 そもそもそういったことは可能なのでしょうか。 ※また、もともとのファイルの容量が非常に大きいので配列を使わず行う、 ということが前提条件としてあります。 現在のスクリプトの簡略化したものが以下となります。 open LOGFILE,"< /○○/ファイルA" || die("die"); open NEWLOG,"+< /△△/ファイルB" || die("die"); $new = <NEWLOG>; while($yomitori = <LOGFILE>){ if(ある条件1){ print NEWLOG "$kakikomi\n"; } if(ある条件2){ ファイルBの書き換えの処理 $new =~s/\n/ $kakikae\n/; print NEWLOG "$new"; } } close(NEWLOG); close(LOGFILE); 上記スクリプトで、ファイルAからファイルBへの書き込み、ファイルBの読み取りまではできておりますが、 ファイルBの書き換えは実現しておりません。 以上、お詳しい方がいらっしゃいましたら宜しくお願い致します。
- ランダムに数字選択
Perl初心者です。 1~8のうちの数字のランダムな並び変えと、その中から以下の条件で数字を6つ選びたいのですが、方法が分からず、ご教示いただければ幸いです。 やりたいのは、 1)1~8から6つの数字を選びたい。 2)数字のうち、6,7,8は1つしか選ばれないようにして、かつ3番目か4番目に入るようにしたい です。 たとえば、 2,3,6,1,4,5(6が選ばれて3番目に) 4,5,3,8,1,2(8が選ばれて4番目に) 1,3,7,2,5,4(7が選ばれて3番目に) 等の結果が得られることを期待しています。 ちなみに、単純に8つの数字のランダムを作るときは以下のように記述していました。 可能であれば、これにどう追記したら上記のことが実現できるかご教示いただけると嬉しいです。 どうぞ宜しくお願いいたします。 my @buf = ("","","","","","","","",""); my @buf2 = ("","","","","","","","",""); my $set_flag = 1; my $idx = 0; while(){ if ($set_flag > 8){ last; } $idx = int(rand(8)) + 1; if ($buf[$idx] ne ""){ }else{ $buf[$idx] = $set_flag; $buf2[$set_flag] = $idx; $set_flag++; } } my $q_list = ""; for(my $loop=1;$loop<=8;$loop++){ if ($q_list ne ""){ $q_list .= ","; } $q_list .= "" .$buf2[$loop]; }