Perlコーディング初心者質問スレ Part 40
>>946 3番目
漏れは矢印あったほうが直感的に理解しやすい
簡単なディレクトリ表示プログラムなんですが
use File::Find;
$dir = "C:\\WINDOWS\\Favorites";
find(\&print_file,$dir);
sub print_file{
print "$File::Find::name\n";
}
C:\WINDOWS\Favorites/test.html
みたいに表示されてしまうんですが、
C:WINDOWS\Favorites\test.html
みたいに表示したいんですけど
どうしたらいいんでしょうか?
s//g
('A`)
"('A`)" =~ m('A`)m
>>953 File::Spec->canonpath($File::Find::name)
タグ除去で
$aaa =~ s/<.*>//i;
にしてたのですが、
<TD>あああ</TD>
こういう1行に2つ以上タグがあるところは除去されてしまうようです
ちゃんと<TD>あああ</TD>⇒あああにするにはどうすればいいですか?
>>959 ありがとうございます、できました
しかしレスはやいっすね・・・
>960
ちなみにどうやったか書いてって〜
>>947 ヘッダを出力する前にプロセスが終了してる。
理由としては
1. HTTPヘッダを出力していない。
2. ヘッダを出力する前にエラーが起きている。
のどちらか。
1.は出力するように修正する。
2.はエラーログにperlのエラーが出力されているので、それを見て修正。
Apacheの場合、改行二回するだけでも、
デフォルトのcontent-typeを吐いてくれる。
(httpd.confをいじってなければtext/plain)
963 :
nobodyさん:05/03/09 15:42:37 ID:TPYzASqD
PHPでいう、
<?
require ("./test/index.html");
?>
これをperlで再現したいのですが、
是非方法を教えて頂けませんでしょうかorz
>>958 アホ
$value =~ s{<[^>]*>}{}g;
>>963 PHPくだスレでのレスは放置かYO。
それに、
「PHPではrequireはコレコレこういう機能がありますが、
Perlでそれを実現するにはどうしたらいいですか?」
って感じの質問の仕方が真っ当だと思うが。
967 :
nobodyさん:05/03/09 16:00:05 ID:TPYzASqD
>>966 すいませんでしたorz
あと、Perlでreqireを使ってphpを呼び出すことは可能でしょうか・・・?
require "./test/index.php";
print index("$index");
↑
これはphpでrequireを使ってindex.phpを呼び出したときの成功ソースです
perlでは失敗しましたorz
ちなみにindex.phpの構造はこんなかんじです
<?
function index($index) {
return "hello!";
}
?>
次の質問どぞー
>>967 おめえはPerlの解説サイト見るって事はできねえのか?
requireがどういう処理をするか調べて自分で考えろよ。
>>967 お前にはPerlは無理だ
PHPならできるかもしれないが
出来るに決まってんだろボケナス
973 :
nobodyさん:05/03/09 16:42:30 ID:bpuh5/Rp
現在、下のようになっています
open new, '>new.txt';
@data = split /\t/;
if($data[0] eq 'kawagoe'){
print new "$_";
}
これですと、データを全て新ファイルに記憶してしまいますが、
data[2](タブ区切り三つ目のデータ)だけを省いて記録するには
どのように書き換えたらよいでしょうか?
975 :
nobodyさん:05/03/09 17:25:19 ID:ox3iJUQY
現在、perlでけっこうな数のスクリプトがあり、これにphpで発行した
セッションを組み込もうと思っています。
phpで発行したセッションはperlからは利用できないのでしょうか?
>>975 しつけえなこいつ
セッションファイルを共有すればいいだけだろ。
そんなこともわからんのか。
セッションの意味をわかってないんだろうよ。
こういう馬鹿はほっとくに限る。
次の質問どうぞ↓
979 :
960:05/03/09 18:59:20 ID:???
>>961 $aaa =~ s/<.*>//i;
↓
$aaa =~ s/<.*?>//i;
たったこれだけでした
>>972 split せんでも、それくらいなら
s/^([^\t]*\t[^\t]*)\t[^\t]*/$1/;
とかでどうかな。
データが長い上何回も繰り返すんだったら、
index と substr でも組み合わせたらいいかと。
[2]だけじゃなく、何個も消すのだったら、@data を splice して join すればいいよ。
981 :
980:05/03/09 19:08:48 ID:???
あー
>>973 だわ、ごめん。
そろそろ1000いくね。
カンマ区切りのファイルから検索します。
@csv = <CSV>
foreach (@csv){
処理
}
この処理で
・splitで分解してeq
・正規表現でマッチ
どちらが早いですか?
index
>>982 そういうのは試した方が早くね?
データによってどれが早いか変わるようなケースも有り得るわけだし。
>>979 だからそれじゃあタグの途中で改行してる場合に困るだろ
>>982 Perlで処理効率云々を言ってもなぁ
それもCGIレベルの話でどちらが云々いうなら、画像サイズなんかを極限まで
落としたほうがよほど効果的だよ。
>>973 print new @data[0..1, 3..$#data];
いろんな箇所でつかいたい文があったので
$live = '<a href=\"*************\">現行スレ</a><br>':
〜〜〜
print "$live";
このようにしたのですがエラーがでます
なにか間違えたりたりないとこがあったらご指摘お願いいたします
>>979 <tag attr=">">
このタグはちゃんと除去できるかな?
コロン
>>988 予断ですが。
シングルクォーテーションの中でダブルクォーテーションはエスケープする必要ないし、
変数1つを出力するのに、ダブルクォーテーションでくくる必要もないです。
>>989 そんなのは<tag attr=>>を除去できるかと言っているのと同義。
$aaa =~ s/<[^>]+?>//is;
でFA?
っていうか、パターンにアルファベットがあるわけでもないのにiオプションですか。
そんなことはもうどうでもいいから次スレ。
軽やかに997ゲット
$aaa =~ s/<.*?>//g;
$aaaにはタグを除去したいHTMLテキスト全体が入っているものとする。
また、HTMLテキストのコメント内および引用符でくくられた属性内には
>を含まないものとする。
1000 :
nobodyさん:05/03/09 21:45:08 ID:uon8ZypZ
せん!
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。