Perlについての質問箱 64箱目

レス数が900を超えています。1000を超えると表示できなくなるよ。
2019/02/01(金) 09:44:37.18ID:1/Kr4Qjk
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: https://medaka.5ch.net/php/

このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
荒らしはスルー推奨。

"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

www.perl.org/get.html
Download Latest Stable Source (5.28.1)

▼前スレ
Perlについての質問箱 61箱目
http://toro.5ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.5ch.net/test/read.cgi/tech/1385039352/
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
815デフォルトの名無しさん
垢版 |
2020/12/06(日) 00:43:41.05ID:Znd8Qdfl
>>813
CGI 実行エラー syntax error at test.cgi line 10, near ""aaawww";"
Execution of test.cgi aborted due to compilation errors.
2020/12/06(日) 01:06:20.00ID:rqNKNacS
単なる構文エラー
無名リストの中に裸のセミコロンがあったらまずいでしょ
["A", "B", 3, ";"] OK
["A", "B", 3, ;] エラー

余計な1じゃなくてprint関数の返り値
printが成功したので真(1)を返して無名リストの要素になった
printで"aaawww"が表示された後デリファレンスされて展開された1がヒアドキュメントで表示される
2020/12/06(日) 01:06:31.00ID:GZ1arJtc
>>814
仕様どおり。w
記述したとおりに正しく動作しているな。
2020/12/06(日) 01:19:08.97ID:d/9HsImJ
>>802
今更だけど日付をエポック秒で表して日数×24*60*60を足すんじゃだめ?

車輪の再発明というかただの製作を承知で、自分で日付変換の関数を一通り作ったらそれで十分だった
便利そうなライブラリを探そうとしたこともあるけど、オブジェクト指向的なやつだと結局その
オブジェクトを介した変換が頻出することになってスラスラ書けないなあと思ったのです。

もし今後UTCとかJSTとか出てきたときはそのときまた考える。
2020/12/06(日) 02:06:04.21ID:fHRDTQ7E
PerlのYAML関連のモジュールが全部重くて厳しい
高速なYAMLモジュールはないのか?
2020/12/06(日) 10:37:45.21ID:kLx/M/5Z
まずは高速なCのライブラリを見つけます
2020/12/06(日) 11:42:16.72ID:BlX3SIQO
>>803 だが、>>802 の質問は>>803 で終わったと思ったのだが、不親切だった?
例えば2019年12月1日から365日後の日付は、次のようにすれば得られる。

use Time::Local;
$year=2019;$mon=12;$mday=1;$hours=12;$min=0;$sec=0;
$intvl=365;
$basetime = timelocal($sec, $min, $hours, $mday, $mon-1, $year-1900);
$basetime += $intvl*24*60*60;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime($basetime);
$mon+=1;$year+=1900;
print STDERR "$year.$mon.$mday\n";
2020/12/06(日) 11:58:40.89ID:5Rf1GOX10
見るからに面倒臭い
2020/12/07(月) 09:18:58.50ID:zfvnE2zk
$basetime = timelocal_nocheck($sec, $min, $hours, $mday+$intvl, $mon-1, $year-1900);
2020/12/07(月) 09:43:24.77ID:UAiCPmDo
Time::Piece はよくできてて、何かのログとかに現在時刻を書き出す、
とかの用途には十分に使える

でも、時刻計算や日数計算はあまり考慮されていない
現在時刻からの計算はできても、任意の時刻からだと弱い
2020/12/07(月) 14:03:32.45ID:tC78i6pr
>>807

use Time::Piece;
use Time::Seconds;

my $day = Time::Piece->strptime('2020-12-05', '%Y-%m-%d');

$day += ONE_DAY * 100;

print $day->date, "\n";

print $day->year, "\n";
print $day->mon, "\n";
print $day->mday, "\n";
2020/12/07(月) 14:21:35.27ID:UAiCPmDo
まあ、strptime さえ目を瞑れば
こんなもん、何か見ないと書けない
827デフォルトの名無しさん
垢版 |
2020/12/07(月) 15:40:13.93ID:15jj6qfl
use POSIX; を宣言してCの標準関数に似た時刻処理機能を使うのが普通じゃないの?
Cの時刻処理サンプルコードを円滑にPerlに移植できるよ。
2020/12/07(月) 17:17:12.82ID:VC6/tHTg
>>826
DateTimeモジュール使えば全て解決なんだが
クソデカくて重いという弱点が
829532
垢版 |
2020/12/07(月) 21:57:48.14ID:WG5ppFXF
Time::Pieceの弱点は
strptime()で作ったインスタンスのtimeゾーンをいじれないとこかな?
後1つなんか弱手あった気がするが忘れた
2020/12/07(月) 22:38:30.88ID:UAiCPmDo
strptimeはpythonでもrubyでも同じだから、もう慣れなんだろうな
'YYYY-MM-DD' とかではあかんかったのか
831デフォルトの名無しさん
垢版 |
2020/12/08(火) 04:35:26.34ID:65P2yCaW
>>821
timeLocal()の年は1900引かない方がいいよ。これちょっとCのライブラリとは違うんだよ。詳しくはドキュメント読んで。
832デフォルトの名無しさん
垢版 |
2020/12/08(火) 04:36:34.48ID:65P2yCaW
あ。タイプミス。timelocal()ね。
2020/12/08(火) 23:53:37.62ID:VS4VHEi1
すみません、ソートで教えて欲しいんですが下記のようにみたいな枝番号が付いてる文字列をハッシュのキーとして
ハイフン前の数値でソートした後にハイフン後の数値でソートしたいのですが
普通に$a <=> $bだとハイフンの後の値がバラバラになって上手くいきません
キーを作る際に別々に作ってループ増やすくらいしか自分には解決方法が無いのですが、スマートに出来る方法は無いのでしょうか?
1-1
1-2
2-1
2-2
3-1
2020/12/09(水) 00:31:36.73ID:LWKBPFtb
>>833
シュワルツ変換で検索!

たとえば :
mapでソート用の値として、前の数字×10000+後ろの数字の値をつくって、それともとの値のペアにする。
それを<=>でソートする。
mapで、ソート結果からもとのデータ部分を取り出す。
2020/12/09(水) 00:39:46.90ID:LWKBPFtb
要は、map{...} sort{...} map{...}となる。
変換のためのループが2回入る(map)が、記述としてはあっさりなので、特殊なソートをしたいときにはよく使われる有名な方法。

伝わるかな?w
2020/12/09(水) 08:45:38.11ID:UMU4oc+t
それで書けるなら、sort { } でも書けるよね
2020/12/09(水) 09:35:02.27ID:sn/SI4a+
>>833
こんな感じかな。デバッグはしていないが。
@newlist = sort compare @oldlist;

sub compare{
my ($ap, $bp) = @_;

($ap1, $ap2) = $ap=~/([0-9]+)\-([0-9]+)/;
($bp1, $bp2) = $bp=~/([0-9]+)\-([0-9]+)/;
return 1 if $ap1 > $bp1
return -1 if $ap1 < $bp1
# $ap1 == $bp1;
return 1 if $ap2 > $bp2;
return -1;
}
2020/12/09(水) 10:27:05.71ID:LWKBPFtb
>>836,>>837
それだと、要素の比較のたびに、値の変換処理が行われる。
比較は何度も行われるため、変換処理が軽くない場合、ソート全体としてかなり重くなりうる。
すくなくとも「スマート」とは言えない。

そこで、変換結果をキャッシュするような形になるのがシュワルツ変換。

知らんならググれ。
2020/12/09(水) 10:46:35.52ID:zREBomTd
sort { s1($a) <=> s1($b) } keys %x;

sub s1 {
shift =~ /(¥d+)-(¥d+)/ && 100*$1+$2
}
sortならこんなかんじ
2020/12/09(水) 10:47:56.70ID:UMU4oc+t
順番が変わるだけで処理量は変わらんでしょう
どっちにしろ重い

次にソートする時はソート対象が変わっているんだから、キャッシュできない

有効な局面もあるんだろうけど、今回に関してはトリッキーなだけでメリットがない
2020/12/09(水) 10:51:05.82ID:UMU4oc+t
次のソートじゃなくて、1回のソート内部の複数の比較に対してか
あー、確かに速くなりそうな気がする
処理系が気を利かせて変わらない気もする
2020/12/09(水) 11:29:48.25ID:LWKBPFtb
>>841
ソートの内部処理が想像できんのか?
もとの並び方にはよるが、ふつうは大きく異なる。
「処理系」とやらが気を利かせられる範疇ではない。

比較処理にsayでもいれて試してみろっつーんだよ。
2020/12/09(水) 12:58:19.84ID:UMU4oc+t
内部の話だからsayでは判らんだろ

関数で評価しないといけないと判っていて、動的に処理する必要も無いんだから、
評価済みのテーブルを内部に持たせようというのは自然な発想
2020/12/09(水) 13:12:15.55ID:/81rDyGm
>>843
試してから言え。
きっと、想像以上の出力が出てきて驚くから。
2020/12/09(水) 13:44:43.94ID:UMU4oc+t
判ってないのかな

処理速度に配慮した処理系があっても不思議ではないという話
手元で試して遅かったとしても、全ての処理系に対する証明にはならない
2020/12/09(水) 14:16:41.19ID:AA5LXV3h
>>845
痛々しいからもうやめとけ
2020/12/09(水) 14:32:22.15ID:LWKBPFtb
>>845
Perlの「全ての処理系」て。w
2020/12/09(水) 15:17:55.01ID:UMU4oc+t
そもそも重いかどうかが疑問で、どっちでやっても一瞬で終わるのが普通
それなら読みやすい方が優れている
重くて困ってから対策を考えればいい
2020/12/09(水) 16:44:07.55ID:qaSCdqDS
map {
$_->[0];
} sort {
$a->[1] <=> $b->[1] || $a->[2] <=> $b->[2];
} map {
[$_, /(\d+)/g ];
}

読みにくい…かなあ?
2020/12/09(水) 17:06:18.35ID:8NKLSi5o
>>849
他の言語の人が見たら発狂しそう
2020/12/09(水) 18:15:36.35ID:UMU4oc+t
別に短く書かなくていいんだよ

@r = sort s2 @a;

sub s1 {
  my $str = shift;
  $str =~ /(\d+)\-(\d+)/;
  return $1 * 100 + $2;
}

sub s2 {
  return s1($a) <=> s1($b);
}
2020/12/09(水) 18:16:58.18ID:xAMitlRd
発狂しない人が使えば良いよ
2020/12/09(水) 19:43:12.41ID:LWKBPFtb
>>848
おまえ、ハードな処理を実装したことがないやろ?w

慣れたPerl使いはわざわざ>>851みたいなコードは書かない。
遅いし、くどくて逆に読みにくいからな。
2020/12/09(水) 19:45:15.15ID:LWKBPFtb
>>850
C#でも、タプルが使えるようになったので、似たようなコードは書く。
LINQなぶんだけPerlより読みやすいけど。
2020/12/09(水) 22:17:09.12ID:rsuX7ND7
ハッシュテーブルにs1($val)の戻り値を保存して、そのハッシュテーブルを使って比較関数を呼び出すとかするのが普通でしょ。
856849
垢版 |
2020/12/10(木) 06:03:00.77ID:+FxPMgzN
読みやすい優れたコードが >>851 か。
自分のコードを出してくれた点は評価するが
$1 * 100 + $2
って何?
2020/12/10(木) 16:08:39.86ID:smJEm1Fb
2桁前提なんだろうな
2020/12/10(木) 19:59:40.99ID:g17Qy/zb
>>857
>>834なら4桁までイケる。w
2020/12/11(金) 03:24:48.11ID:lklp228q
考え方は同じだけど最初からソート用の値をデータに持たせてみる。
my %x = (
'3-1' => ['e', 301],
'1-2' => ['b', 102],
.... ,
);

sort { $x{$a}[1] <=> $x{$b}[1] } keys %x;
2020/12/11(金) 03:42:00.36ID:Hz2bdcAQ
複数キーでのソートに帰着させるべきなんだろうな
1-1-1 も許容する、とかになった瞬間に破綻する
2020/12/11(金) 04:01:52.35ID:Hz2bdcAQ
sub s1 {
my @a = split /\-/, $a;
my @b = split /\-/, $b;
my $dim = @a > @b ? @a : @b;
for my $i (0 .. $dim) {
my $cmp = $a[$i] <=> $b[$i];
return $cmp if $cmp;
}
return 0;
}
862856
垢版 |
2020/12/11(金) 06:10:31.03ID:LwDR4/oY
>> 833 には数値の値域については何も書かれてないんだから
勝手に想定しない方がいいと想うよ。
どうしても比較を簡略化したいなら pack 関数で数値を全部
ビッグエンディアンで並べればいいんじゃないかな。
2020/12/11(金) 10:41:01.46ID:vQm1aiEb
>>860
最初から想定されてるのでなければ、ひどい仕様変更なんだから、実装変更もやむなしやろ。
数字じゃなくてアルファベットにします、と言われただけでパーやし。w
2020/12/11(金) 10:50:54.59ID:vQm1aiEb
>>862
勝手に想定するのもあたりまえ。
じゃないと、なんにも例示できなくなるで?

値域がどうこうなんか、自分でなんとでもすればいいだけ。
本題のソートには関係ない。
2020/12/11(金) 11:20:18.13ID:Hz2bdcAQ
1-1があるなら1-1-1もあると予測するのは自然な拡張
1-1-1-... に無限に対応できるように作っておいて、
その特殊ケースとして要件を満たす、で十分

アルファベットにも対応するのは次元が違う
2020/12/11(金) 19:40:49.33ID:V1LdBVWq
>>864
こういうひとがコーディングすると
バッブァオーバーランとか起こしてセキュリティに穴を開けるんだな
2020/12/11(金) 20:46:31.45ID:vQm1aiEb
>>866
アホなの?
他人のコードのバッファオーバーランなんか知らんわ。
自分で責任を持て。
2020/12/11(金) 21:01:49.19ID:jm3zE7RU
普段は過疎ってるのに少し書き込みがあるとクソ雑魚が湧いてきてグズグズ文句たれる
頭の中どうなってんだろうな
2020/12/11(金) 22:34:31.89ID:Hz2bdcAQ
んでんでんで
2020/12/11(金) 22:41:46.66ID:pFqzegRi
>>837 だが、実は、このコードは、オレが実際に、数字とかアルファベットとかが
複雑に絡んだ文字列を、ある規則に従ってソートするために作ったものを
流用したんだ。だから、応用範囲が広いという点では、これがいいと思うけどな。
2020/12/11(金) 22:48:30.39ID:Hz2bdcAQ
sortの関数って@_で受けれるの?
2020/12/11(金) 23:30:45.59ID:vQm1aiEb
>>870
にしたって、超激遅やで?
要素数が充分に少なきゃええけど。
2020/12/11(金) 23:38:00.26ID:Hz2bdcAQ
どう見ても章のタイトルとかそんなんなので、1000も無いよ
高速化の工夫は遅くて困ってから
874532
垢版 |
2020/12/12(土) 00:28:14.42ID:tTwN9OuS
>>833
perlのsort()アルゴリズムは5,8以降マージソートになってsort結果は安定なアルゴリズムなので
手短にコードを書くなら右の数字でsortしてから左の数字でsortすれば所望の結果が得られる。以下サンプル実装

use List::Util 'shuffle';
%h = map{$_ => $i++} shuffle qw{1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3};
use feature qw{say signatures}; no warnings experimental;

@k1 = keys %h;
say "@k1";
sub f($s) { [$s =~ /(\d+)/g, $s]};
@k2 = map{$$_[2]} sort{$a->[0] <=> $b->[0]} sort{$a->[1] <=> $b->[1]} map{f $_} @k1;
say "@k2";


実行結果
~ $ perl 64_833_n-n_sort_1.pl
1-1 2-3 3-3 1-2 3-1 2-2 2-1 1-3 3-2
1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3

言語処理系内部のsort()関数のアルゴリズムに依存しない書き方がしたいなら
左と右の数値で二段階のソートをするか、右の数字と左の数値で順位に一貫性のあるキーを作って
一段階のソートで済ませる方法もあると思う。

そういったサンプル実装を見たいのであれば、時間があればくけれども…
875532
垢版 |
2020/12/12(土) 00:42:28.87ID:tTwN9OuS
つか、実は Tie::IxHash を使ってhashに登録したデータの順番を維持して取り出せれば
いいだけの話だったりしてな。しらんけど
2020/12/12(土) 00:47:36.64ID:iq4I9JA8
>>867
アホだなあ
877532
垢版 |
2020/12/12(土) 00:48:12.17ID:tTwN9OuS
>>849
おっとここに十分な解答があったわw
2020/12/12(土) 01:06:54.59ID:4UtPcEnB
>>876
Perlでバッファオーバーランを実装する方法を教えてください。w
2020/12/12(土) 02:31:23.48ID:gfhxsiY6
バッファオーバーランつまり out of range なんてすぐ起こせるでしょ。
2020/12/12(土) 03:38:37.71ID:4UtPcEnB
>>879
具体的に詳しく!
Perlでな?
881862
垢版 |
2020/12/12(土) 09:07:56.06ID:K38oRjDr
pack に誰も食いついてこないのはちょっと寂しいな。
正しくやれば C でさえ 1 回の memcmp で比較が済むのだが。
ましてや、Perl の pack/unpack は Perl4 の時代からある超便利関数なのだが。
まあ、「ひょっとして比較をシンプルにしたいのかな?」と思ったから書いただけだし
今回のニーズには合ってても万能というわけではないし
自分が良いと思う方法でやればいいと思うよ。
2020/12/12(土) 09:26:02.24ID:kEr/Zqiv
数1つあたりのbit数が決められないがな
何とかしてmap使いたいから無理筋言ってるだけとしか
883532
垢版 |
2020/12/12(土) 10:42:34.69ID:+ekv//0b
>>833 >>874に書いた左の数字と右の数値両方で順位に一貫性のあるキーを作って一回でsortするサンプル
数値は4桁以下であることを仮定してます。

use List::Util 'shuffle';
%h = map{$_ => $i++} shuffle qw{1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3};

@k1 = keys %h;
print "@k1\n";

@kk = map{[sprintf("%4d%4d", /(\d+)/g), $_]} @k1;
@k2 = map{$$_[1]} sort{$$a[0] cmp $$b[0]} @kk;

print "@k2\n";
884532
垢版 |
2020/12/12(土) 10:47:43.50ID:+ekv//0b
こうやって幾つかコード書いてみて…>>849かTie::IxHashで十分な気がしたわw
2020/12/12(土) 13:20:14.94ID:4UtPcEnB
>>881
慣れたヤツには最適解過ぎ、慣れてないヤツには意義がわからん、ということで、そんなに食いつきようがないやろ。w
886デフォルトの名無しさん
垢版 |
2020/12/16(水) 23:33:00.22ID:qMOR0fCG
>>833
もしそれが桁数固定で、例えばその例のように一桁の数、ハイフン、一桁の数という文字列ならば、何も考えずにそのまま文字列として比較して sort すればいい。つまりただ sort するだけ。
2020/12/17(木) 05:05:50.95ID:fz9fvgi4
そんなもんは9で終わる訳がなくて10も100もある筈、と自然に拡張して考える
それと同様に、枝番号ならサブサブセクション以降もある筈、という拡張は
自然なのに、そっちには思い至らないんだよな
2020/12/17(木) 09:44:28.00ID:RUflbAwb
>>887
外野が考えることじゃない。
>>886は、簡単なケースの例を言ってるだけだから、それでええやろ。
2020/12/18(金) 08:38:15.55ID:1Xc4Ax1A
「数値でソートしたい」って最初から書いてあるだろ……
2020/12/18(金) 08:53:35.39ID:lJHaaS7Y
今だけはいいけどすぐに駄目になりそうな設計を、
裏技見つけたみたいにやりたがる奴がいるんだよな
ユーザは予想を超えた無茶をしてくるものなのに
2020/12/18(金) 09:55:06.92ID:Kz3E+lfW
Keep It Simple, Stupid
2020/12/18(金) 09:58:16.29ID:lJHaaS7Y
よい設計というのは自然とシンプルになるものなんだよ
893849
垢版 |
2020/12/18(金) 16:30:11.78ID:1Xc4Ax1A
sub Schwalts {
@tmp = @_;
@tmp = map { [$_, /(\d+)/g ] } @tmp;
@tmp = sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] } @tmp;
( map { $_->[0] } @tmp);
}

を短く書いたのがシュワルツ変換だよ
くらいの説明はした方がいいのかな。
2020/12/18(金) 21:33:33.71ID:rUPjISbN
まだやってんのかw
2020/12/22(火) 10:15:20.24ID:YhckWNJa
最近raku触ってるけど面白すぎるわこれ、識別子をパース?して組み合わせるの楽しい
もうこれ半分lispだろ
2020/12/22(火) 12:14:37.88ID:/kVuwMjM
演算子の前後に空白が必須なの、なんかイヤじゃない?
ツメツメで書きたいのに。

Perl6のころだけど、オレが降りた理由のひとつ。
2020/12/22(火) 16:09:49.34ID:Rxnt3reZ
>>895
面白いんだけどね
他の言語では無いような機能のオンパレード
ちょっと先を行き過ぎてる感が強すぎるかなあ
2020/12/22(火) 16:21:28.35ID:Mi4b/BA1
言語なんて、他の言語のいいとこ取りで進化していくからな
常に便利になった部分と実験的な部分がある
899デフォルトの名無しさん
垢版 |
2020/12/27(日) 18:10:18.92ID:pJIjrBUp
ローカルで一番最初にperlの呼び出しの部分は#!c:/Perl/bin/perl.exeって書くけど
サーバーに上げるときは毎回#!/user/local/perlというように書き直すのがめんどうだけど
#!/user/local.perlのまんまでもローカルで動かす方法ありますか?
2020/12/27(日) 19:39:12.76ID:CEWAcbKQ
あれ?
/usr/local/perlのままでもいけるんじゃないの?
Windowsはそこのパスを見てなかったような。
2020/12/27(日) 19:46:23.03ID:/HQdSjMP
Apacheは見てる
そんでApacheのあるドライブにuser/localのフォルダ作ってperl.exeをコピーしたら動くよ
2020/12/27(日) 21:30:33.15ID:CEWAcbKQ
そうだっけか?

ちなみに、もしそのファイルに拡張子があるならレジストリで指定する方法もある。
「windows apache レジストリ 拡張子」で検索!
2020/12/28(月) 00:11:42.69ID:oUNoRxKm
perlプログラム中に指定するルートパスについてだけど

open(IN,"/test.html");
my @lines = <IN>;
print "@lines";
close(IN);
とやっても@linesは空で何も取得できなかったけど

print "<a href=\"/test.html\">リンク</a>";
でリンクをクリックするとちゃんとドキュメントルート直下のtest.htmlに飛べる
これはどうしてか?
test.htmlの中身は空ではない
2020/12/28(月) 00:28:09.86ID:AD+30T3D
>>903
ファイルシステムのルートとドキュメントルートはまったく異なる。
ファイルシステムはプログラム自身が処理するが、URLはまずブラウザが解釈する。

まず落ち着いてよく考えろ。
905デフォルトの名無しさん
垢版 |
2020/12/28(月) 08:24:52.02ID:oUNoRxKm
>>904
つまりperlプログラム中で指定する/test.htmlはファイルシステムのルートパスになり
リンクタグで指定する/test.htmlはドキュメントルートのパスになるということですか?
2020/12/28(月) 08:37:46.11ID:9b76uWwh
ドキュンルート
2020/12/28(月) 21:50:36.57ID:gLlPtDZl
>>905
わかってるやん
レスコジキなら他に行ってくれ
2020/12/30(水) 20:09:27.64ID:ygO1FIcm
過疎ってる方が落ち着くという人もいるらしい
2020/12/30(水) 20:26:20.53ID:ZDzqqnZf
初心者が嫌いな「上級者」で過疎っているほうが落ち着くなら、このスレがいいな。

【Perl上級者コーナーPart01】
https://medaka.5ch.net/test/read.cgi/php/1024741312/
2020/12/30(水) 21:55:58.30ID:Fpo/gio8
>>907
わかってるとはいえんよ。
結果のおうむ返しだけみたいだからな。

落ち着いて考えればわかるはずだし、それでしっかり納得したほうがいいことだから、元コメに返事はしないが。
2021/01/03(日) 17:25:22.42ID:Lv3VCxJc
ブラウザのクッキーを許可してるかどうかを調べるにはどうしたらいいんですか?
クッキーを書き込めたら許可されているというやり方だと
書き込んだ直後はクッキー読み取れない
更新ボタンでページを更新しないとクッキー読み取れないので他のやり方で
2021/01/03(日) 17:33:27.51ID:qCTYrijY
お、今年初めの質問だね。
君の悩みは質問箱住人が解決するよ。
ささ、甘酒どぞ。つ甘
みんなーお客さんだよー。
2021/01/03(日) 19:13:07.92ID:fvS6UGyp
>>911
javascript併用したくないならHTTPヘッダで
print "Set-Cookie: hoge\n";
print "Location: hage\\n\n";
みたいな感じでクッキー書いてリダイレクトすればいいんじゃね
914デフォルトの名無しさん
垢版 |
2021/01/03(日) 20:53:05.77ID:Lv3VCxJc
>>913
なるほど、でもそれ無限ループにならないっすか?
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況