Perl初心者スレ(マジレス回答) (523レス)
上下前次1-新
482: 2019/08/30(金)17:42 ID:fIMZQtfT(1/2) AAS
そこまでするくらいなら HTML::Parser を使う方がいいと思うよ。
483: 2019/08/30(金)17:56 ID:XCxRWcZV(3/4) AAS
>481
できました!、ありがとうございます。
'を'""'で括るのですね
なんで\でエスケープにならないんでしょうね
484: 2019/08/30(金)18:04 ID:XCxRWcZV(4/4) AAS
パーサーも一度使ってみたんですが
<p>hoge</p><p>hoge</p>
pタグが一行に2つあると誤作動したりするんですよね
485(1): 2019/08/30(金)23:22 ID:fIMZQtfT(2/2) AAS
その誤作動がパーサーのせいかどうかは判らないが、少なくとも
HTML::Parser でそんなことは起こらないから安心してほしい。
たとえばテキスト部分だけを出力したいならこんな感じでできる。
my $parser = HTML::Parser->new(
text_h => [sub { print( $_[0]) },'text'],
);
$parser->parse_file( \*STDIN);
486: 2019/08/31(土)00:18 ID:mx6W2BK8(1) AAS
>485
参考になります。
パーサーもいろいろ種類あるみたいですね。
自分の使ってたのはhtml-xml-utilsというやつでした。
487: 2021/04/21(水)00:35 ID:J2c8I4ei(1) AAS
@aに0を100ケ追加するには、pushをforで100回回す以外の方法ありますか
488(1): 2021/04/21(水)03:07 ID:aE0oGLsa(1) AAS
push(@a, (0) x 100);
489: 2021/04/27(火)18:16 ID:OX0aAdkQ(1) AAS
>>488
ありがとうございました
俺が遅くなりまして申し訳ありません
490: 2021/11/19(金)22:27 ID:v67hT9Zk(1) AAS
二つ以上の空白文字列を
一つの空白に変えたいのですが
うまくいきません。
if($line=~/\s\s+/){
$line=~s/\s\s+/\s/g
print("$line\n")
}
491: 2021/11/20(土)02:07 ID:h6kzSIM/(1) AAS
$line=~s/¥s¥s+/ /g
では?
492: 2021/11/20(土)20:14 ID:xbsxU5SW(1/2) AAS
s/\s\s+/ /g;
でうまくいったよ。
そうか、\sって正規表現だから、置換文字列に使うと「perl にそんな定義ないで!」ってなるのか。
これは俺も気を付けよう。
493: 2021/11/20(土)20:36 ID:xbsxU5SW(2/2) AAS
置換といえばこのまえ、JSONで取得したUnicodeを表示したくて、
\u3042 → \N{U+3042}
に置換しようとしたけど、できなかった。
\N{U+ }←ここにはリテラルしか書けないのかな。
494(2): 2021/12/14(火)19:15 ID:LP8Fmqr9(1) AAS
if文で真偽値を判定するのってどうやるの?
hoge() or die("Error\n");
ってなってた(hoge()の戻り値が魏ならエラー)のを標準出力したくて
my $a = hoge();
if( ! $a ){ print("Error\n"); exit $!; }
みたいにしたんだけど、if文の書き方ってこんなんで良いの?
495(2): 2021/12/25(土)19:09 ID:pJ3Bii8w(1) AAS
>>494
0を返しても、0という文字(アスキーコード0x30)として扱われたりするから、俺は
if(scalar($a)) {
とか
if($a eq 0) {
とかするよ。
496(1): 2021/12/25(土)20:31 ID:62MjaTIU(1) AAS
>>494
良い。
! で条件反転させるんだったら unless 使っても良いと思うけどね。
unless ($a) { ... } みたいに。
497(1): 2021/12/30(木)05:41 ID:grPlj9k3(1) AAS
良くないんだってば。
Perlをそういう流儀でやってるといつか痛い目にあうよ。
498: 494ではない 2021/12/30(木)08:07 ID:j5bdR14I(1) AAS
>>495
マジか。
my $a = hoge();
において、左辺が 0、右辺が 0x30 になるのは、言語としてぶっ壊れているんじゃね?
499: 2021/12/30(木)17:49 ID:QArx8wCq(1) AAS
そういう言語なの
0 but true
なんていう値もあるし
500: 2022/01/10(月)19:33 ID:2hS04FMw(1) AAS
do what perl mean
501: 2022/01/11(火)00:17 ID:Xf79Fgui(1) AAS
bool値ほしい
502: 2022/03/27(日)23:43 ID:TRkpHzjA(1) AAS
>>497
じゃあどうすればいいの?
503: 2022/04/28(木)20:33 ID:KupWcmJ5(1) AAS
元の
hoge() or die("Error\n");
が問題なく動いてるなら
hoge() or print("Error\n"), die $!;
504: 2022/06/11(土)13:31 ID:XcUjU1KU(1) AAS
hoge()が0を返しうるかどうかもわからんと思うのだが
>元の
>hoge() or die("Error\n");
>が問題なく動いてるなら
という前提の下で >>495 の配慮に意味があるの? >>496 で十分
hoge() or が動くという前提を無視するとして
もしもhoge()が0を含む数値か失敗を返すなら(空文字を含む文字列か失敗でもいい)
失敗にundefを返してdefinedで受けるのがフツー
505(1): 2023/12/15(金)06:59 ID:aRdlBUAD(1) AAS
$_ ← これ、なんて読む?
perlが発祥ってわけでもないそうだが(bashとかにもあるんだってね)、ガチのドザなので
俺は内心ドルバーって呼んでる
506: 2023/12/19(火)00:32 ID:LgO8Ui43(1) AAS
ドル・アンダーバーじゃないかな。
設定によってはチルダの代わりにトップバーってのがあったから、それと区別するのにアンダーって言ってた気がする。
507: 505 2023/12/21(木)12:15 ID:nsa/DjJa(1) AAS
おつあり
そういやそんなの(トップバー)あったねえ なるほど
508: 2024/02/09(金)17:07 ID:LEmbefGZ(1) AAS
V5.38.2
32ビット
外部リンク:github.com
64ビット
外部リンク:github.com
509: 2024/03/03(日)23:39 ID:1cRqRnnX(1) AAS
なつかしのcgiゲームを設置したくてperlを触ってるのですが、今の時代でもcgiゲームはサーバーへの負荷は大きいのでしょうか?(昔はよくゲームの設置が禁止されてましたが)
perlと関係なかったらすみません…
510: 2024/03/16(土)03:41 ID:I49Gallj(1) AAS
StrawberryPerlで
$str='あ';
if ($str =~ /^[あいう]$/) {print("match\n");}
を実行してみるとマッチしてくれません
/^(あ|い|う)$/ ならマッチするのですが
古いPerl4のjperlなら /^[あいう]$/ でもマッチします
やはりこれはStrawberryPerlのバグ(または仕様)なのでしょうか
511(1): 2024/03/16(土)08:42 ID:E8XsMGej(1/2) AAS
print length $str; を入れてみたらわかる
上下前次1-新書関写板覧索設栞歴
あと 12 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.022s