CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: http://kohada.2ch.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.18.2)
▼前スレ
Perlについての質問箱 61箱目
http://toro.2ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.2ch.net/test/read.cgi/tech/1385039352/
探検
Perlについての質問箱 63箱目
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/02/19(水) 23:36:23.29582デフォルトの名無しさん
2017/01/24(火) 18:17:56.63ID:wudREosA >>581
回復職やサポート職の経験値もなしということでしょうか。
回復職やサポート職の経験値もなしということでしょうか。
583デフォルトの名無しさん
2017/01/24(火) 18:48:47.54ID:tYWypKKw 昔はこれでアラーにならなかったのですが、perl5.8でこれを実行すると @{$_[2]}が原因でこけてるらしいです。
どのように変えればよいでしょうか
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
どのように変えればよいでしょうか
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
584デフォルトの名無しさん
2017/01/24(火) 22:39:27.02ID:zqYaLnZ2 >>583
# http://perldoc.perl.org/5.8.9/Scalar/Util.html
use Scalar::Util qw(reftype);
my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat);
# http://perldoc.perl.org/5.8.9/Scalar/Util.html
use Scalar::Util qw(reftype);
my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat);
585デフォルトの名無しさん
2017/01/24(火) 23:38:20.96ID:LKVAQWtm >>583
$_[2]には何が入ってんだよ
$_[2]には何が入ってんだよ
586デフォルトの名無しさん
2017/01/25(水) 08:15:46.34ID:1MVxS70E587デフォルトの名無しさん
2017/01/25(水) 09:09:34.94ID:WOhX0mTt 違う、そうじゃない
588デフォルトの名無しさん
2017/01/25(水) 09:15:19.78ID:dJNPI+cJ >>586
Perl 5.16.3 だが、下のスクリプトで1行目を入れても
消しても、きちんと動くぞ。
$_[2]に配列のリファレンス以外のものを入れたのだろう。
(エラーメッセージにそう書いてあるはずなんだが)
-----------------------------------------
$_[2] = [qw(a b c d e f g)];
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
print @WdayArr;
Perl 5.16.3 だが、下のスクリプトで1行目を入れても
消しても、きちんと動くぞ。
$_[2]に配列のリファレンス以外のものを入れたのだろう。
(エラーメッセージにそう書いてあるはずなんだが)
-----------------------------------------
$_[2] = [qw(a b c d e f g)];
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
print @WdayArr;
589デフォルトの名無しさん
2017/01/25(水) 09:30:32.20ID:1MVxS70E590デフォルトの名無しさん
2017/01/25(水) 10:03:41.94ID:WOhX0mTt こういう時はエラーメッセージをそのまま貼るのが正解
591デフォルトの名無しさん
2017/01/25(水) 10:20:22.46ID:1MVxS70E このようなエラーが
Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi
Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi
592デフォルトの名無しさん
2017/01/25(水) 10:29:15.16ID:WOhX0mTt ARRAY(0x10b0458) というのは配列リファレンスを文字列として評価した時に出てくる
関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう
関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう
593デフォルトの名無しさん
2017/01/25(水) 10:31:24.85ID:1MVxS70E ありがとうございます。関数の実行側のほうを確認します。
594デフォルトの名無しさん
2017/01/28(土) 20:27:36.04ID:t13qO4X2 Perlはマジで糞だな
リファレンスはリファレンスで同じじゃねーの?
バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明
リファレンスはリファレンスで同じじゃねーの?
バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明
595デフォルトの名無しさん
2017/01/28(土) 20:37:05.87ID:7oV/H97Q ・・・?
596デフォルトの名無しさん
2017/01/30(月) 08:35:21.14ID:CkOT0sBx Cの共用体のようなことしなければ、
ある「型」のリファレンスは
その「型」のリファレンスのままでよい。
それ以外の使い方をすれば、「間違っている」として
エラーを吐いてくれるのが有難いではないか。
ただ、リストのリファレンスをハッシュの
リファレンスとして使いたい時(またはその逆)
がたまにあるが、それは可能にしてほしいと思う。
ある「型」のリファレンスは
その「型」のリファレンスのままでよい。
それ以外の使い方をすれば、「間違っている」として
エラーを吐いてくれるのが有難いではないか。
ただ、リストのリファレンスをハッシュの
リファレンスとして使いたい時(またはその逆)
がたまにあるが、それは可能にしてほしいと思う。
597デフォルトの名無しさん
2017/01/30(月) 15:21:11.69ID:MjhEgZic # こういうのじゃいかんか?
my $ref_to_hash0 = +{ @{ $ref_to_array0 } };
my $ref_to_array1 = [ %{ $ref_to_hash1 } ];
my $ref_to_hash0 = +{ @{ $ref_to_array0 } };
my $ref_to_array1 = [ %{ $ref_to_hash1 } ];
598デフォルトの名無しさん
2017/01/30(月) 21:42:50.47ID:kKFFvpaa >>597
無駄なものがあって読みづらい
my $ref_to_hash0 = { @$ref_to_array0 };
my $ref_to_array1 = [ %$ref_to_hash1 ];
何がしたいのかわからん。
キーと値が交互に出てくるものを
ハッシュかリストに変換したいのか?
無駄なものがあって読みづらい
my $ref_to_hash0 = { @$ref_to_array0 };
my $ref_to_array1 = [ %$ref_to_hash1 ];
何がしたいのかわからん。
キーと値が交互に出てくるものを
ハッシュかリストに変換したいのか?
599デフォルトの名無しさん
2017/01/30(月) 23:42:02.11ID:XappdU+s my $ref_to_hash0 = { $ref_to_array0->@* };
my $ref_to_array1 = [ $ref_to_hash1->%* ];
my $ref_to_array1 = [ $ref_to_hash1->%* ];
600デフォルトの名無しさん
2017/02/04(土) 21:52:52.06ID:rb4WR6H/ Javaのクラス周りに慣れるとPerlのクラス周りは本当に不自由だと気付く
601デフォルトの名無しさん
2017/02/04(土) 22:07:55.97ID:ydMztSgS 比較例に出すのにJavaのクラスなんぞを持ち出すのもどうかと
602デフォルトの名無しさん
2017/02/06(月) 09:40:35.12ID:ZiMti5cO xp 32bit
xp対応のアクティブパール(ActivePerl)がダウンロードできないです
旧バージョンはどこからダウンロードできますか?
xp対応のアクティブパール(ActivePerl)がダウンロードできないです
旧バージョンはどこからダウンロードできますか?
603デフォルトの名無しさん
2017/02/06(月) 12:24:16.94ID:dMFd7Yq5604デフォルトの名無しさん
2017/02/06(月) 14:58:39.49ID:q20moLVF $str = "LIST( '2016123456','2015123456','2017987654',…)
という$strがあった時に、シングルクオートに囲まれた部分だけを取り出して
@listに突っ込みたいんだけどどう書いたらいい?
splitの正規表現でいけるかと思ったけどどう書いていいかわからない。
という$strがあった時に、シングルクオートに囲まれた部分だけを取り出して
@listに突っ込みたいんだけどどう書いたらいい?
splitの正規表現でいけるかと思ったけどどう書いていいかわからない。
605デフォルトの名無しさん
2017/02/06(月) 19:57:05.35ID:YzSDBsjI606デフォルトの名無しさん
2017/02/06(月) 20:08:36.65ID:B4iHWGCu 今activesite見てきたら、まあ流し読みしかしてないけど、古いバージョンは有料で提供してやるよって買いてあった
607デフォルトの名無しさん
2017/02/06(月) 20:13:46.71ID:B4iHWGCu Need Perl on production servers or access to Perl 5.6, 5.8, 5.10, 5.12, 5.14, 5.16, 5.18 or 5.20?
Learn more about ActivePerl Business Edition
--------------------------------------------------------------------------------------------------------------------------
Get the language version you need on the platform you want. The following versions are available for purchase with Business Edition+:
ActivePerl 5.8, 5.10, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24
ActivePython 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5
ActiveTcl 8.4, 8.5, 8.6
Learn more about ActivePerl Business Edition
--------------------------------------------------------------------------------------------------------------------------
Get the language version you need on the platform you want. The following versions are available for purchase with Business Edition+:
ActivePerl 5.8, 5.10, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24
ActivePython 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5
ActiveTcl 8.4, 8.5, 8.6
608デフォルトの名無しさん
2017/02/06(月) 20:41:32.21ID:r2wSMn/A >>604
push @list, $1 while $str =~ /'([0-9]+)'/g;
push @list, $1 while $str =~ /'([0-9]+)'/g;
609デフォルトの名無しさん
2017/02/06(月) 20:55:17.22ID:oG8S/cPb >>604
$str = "LIST( '2016123456','2015123456','2017987654',…)
$str =~ s/LIST/@list=/;
eval($str);
でいいんじゃね?
$str = "LIST( '2016123456','2015123456','2017987654',…)
$str =~ s/LIST/@list=/;
eval($str);
でいいんじゃね?
610デフォルトの名無しさん
2017/02/06(月) 23:15:15.61ID:n09J3oc8 eval 怖ひ
611デフォルトの名無しさん
2017/02/07(火) 00:35:10.28ID:S1oxUZhq612デフォルトの名無しさん
2017/02/07(火) 08:04:04.27ID:0+g59X+8613デフォルトの名無しさん
2017/02/07(火) 08:39:30.86ID:5nFcePp/ >>602
2014年にダウンロードした
ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi
を持っている。
ただ、Active State が古いバージョンを有償でのみ提供
しているのに、勝手に古いバージョンをうpしていいものか解らん。
そのあたり、クリアにしたら、どこかにうpしてやってもいいが。
2014年にダウンロードした
ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi
を持っている。
ただ、Active State が古いバージョンを有償でのみ提供
しているのに、勝手に古いバージョンをうpしていいものか解らん。
そのあたり、クリアにしたら、どこかにうpしてやってもいいが。
614デフォルトの名無しさん
2017/02/07(火) 10:26:02.92ID:NmaWW75y m//g の形式でグローバルマッチの意味がないように思うが
615デフォルトの名無しさん
2017/02/07(火) 12:23:47.76ID:5nFcePp/616デフォルトの名無しさん
2017/02/07(火) 16:36:45.75ID:pJfTbQRq あると高速化できるようなrecommendsだけどインストールされていないモジュールを一覧出来る方法を教えて下さい
617デフォルトの名無しさん
2017/02/07(火) 17:46:12.43ID:TrN1jB3j >>602
googleでググったらすぐに見つかったけど?
https://xray-engine.org/index.php?title=ActivePerl
(このサイトは開くとき継続しますかって警告が出たんで
ルート証明の認証に問題があるかも知れない
一応Java ScriptとActiveXの実行は切ってアクセスしたほうがいいだろう)
一応俺が使ってる(XP 32bit)
ActivePerl-5.20.3.2003-MSWin32-x86-64int-299574.msi
をダウンロードして保存していたファイルと比較してみたけど一致したから問題ないと思う
あと、5.22.1も試してPerlとしては動いたので
現行ダウンロードできる5.22.3も大丈夫じゃないかな?
(インストーラがexeに変わってるけど)
あと俺が使えると言った5.22.1を何故使ってないかと言うと
WSHから何故か正常に使えなかったので、使える5.20.3を使ってる
googleでググったらすぐに見つかったけど?
https://xray-engine.org/index.php?title=ActivePerl
(このサイトは開くとき継続しますかって警告が出たんで
ルート証明の認証に問題があるかも知れない
一応Java ScriptとActiveXの実行は切ってアクセスしたほうがいいだろう)
一応俺が使ってる(XP 32bit)
ActivePerl-5.20.3.2003-MSWin32-x86-64int-299574.msi
をダウンロードして保存していたファイルと比較してみたけど一致したから問題ないと思う
あと、5.22.1も試してPerlとしては動いたので
現行ダウンロードできる5.22.3も大丈夫じゃないかな?
(インストーラがexeに変わってるけど)
あと俺が使えると言った5.22.1を何故使ってないかと言うと
WSHから何故か正常に使えなかったので、使える5.20.3を使ってる
618デフォルトの名無しさん
2017/02/07(火) 20:35:38.79ID:k/sR8nQd619デフォルトの名無しさん
2017/02/07(火) 20:58:27.25ID:NmaWW75y use IO::Socket;
620デフォルトの名無しさん
2017/02/08(水) 01:47:50.85ID:lrXbOWPO621デフォルトの名無しさん
2017/02/09(木) 00:36:47.60ID:MB7d2iTo おれ XP で Strawberry Perl つかってる
ActivePerl はモジュールの対応が遅いから乗り換えた
ActivePerl はモジュールの対応が遅いから乗り換えた
622デフォルトの名無しさん
2017/02/09(木) 00:50:56.06ID:9TbyVJRb むしろなぜXPを使ってるのか知りたい
623デフォルトの名無しさん
2017/02/09(木) 01:09:37.56ID:EjItGpsn >>617のところでActive Perlの古いのから最新まで全部ダウンロードできるじゃん
それで解決だろ
それで解決だろ
624デフォルトの名無しさん
2017/02/09(木) 12:20:55.28ID:awPX9+44 >>622
M$に金を払うのが嫌だからだろう。
M$に金を払うのが嫌だからだろう。
625デフォルトの名無しさん
2017/02/09(木) 22:13:19.02ID:CNUBJX7I >>624
それだけだったらLinuxやFreeBSDなどを使うって方法もあるだろ?
だからM$に金を払うのがいやだけど、MSのOSが好きという理由であるはずだ
もしくはMS以外のOSがクソだっていう可能性もあるけど
それだけだったらLinuxやFreeBSDなどを使うって方法もあるだろ?
だからM$に金を払うのがいやだけど、MSのOSが好きという理由であるはずだ
もしくはMS以外のOSがクソだっていう可能性もあるけど
626デフォルトの名無しさん
2017/02/09(木) 22:22:13.62ID:4ZcYgl3B627デフォルトの名無しさん
2017/02/09(木) 23:43:38.97ID:NyKrJWYT 進化が止まっている #とは
628デフォルトの名無しさん
2017/02/10(金) 07:05:20.49ID:SVdyXXtN >>618
もう見てないだろうけど
HTML::TreeBuilder
HTTP::Daemon
LWP::UserAgent
WWW::Scripter
くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。
もう見てないだろうけど
HTML::TreeBuilder
HTTP::Daemon
LWP::UserAgent
WWW::Scripter
くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。
629デフォルトの名無しさん
2017/02/10(金) 10:48:54.81ID:tdAYPVUl 最近はperlは余り聞かないな
中学生の時にはブームだったけど……。(何十年も前)
学校ではpython とかだと思う。C# java が主力?
とにかく、滅多に聞かないな
中学生の時にはブームだったけど……。(何十年も前)
学校ではpython とかだと思う。C# java が主力?
とにかく、滅多に聞かないな
630デフォルトの名無しさん
2017/02/10(金) 15:05:42.76ID:j8ygGIFR631デフォルトの名無しさん
2017/02/10(金) 22:06:13.34ID:+KYQgfiL Perlは全然進化しないからな
一年ちょっと前に6がでて音沙汰なし
7はいつ出るんだ?って状態
一年ちょっと前に6がでて音沙汰なし
7はいつ出るんだ?って状態
632デフォルトの名無しさん
2017/02/10(金) 22:29:17.89ID:pJ/oSP18 ナイスジョーク
633デフォルトの名無しさん
2017/02/11(土) 09:59:05.70ID:pXj4BwQB まともな学校はcだろ。
634デフォルトの名無しさん
2017/02/11(土) 11:05:50.36ID:ffoIlYEu 実用性を重視するならJava一択
635デフォルトの名無しさん
2017/02/11(土) 14:50:19.58ID:N4/UY6wx636デフォルトの名無しさん
2017/02/11(土) 15:18:36.75ID:p/3UeWk3 >>634
> 実用性を重視するならJava一択
それって言語の実用性じゃなくて
人材的な意味での実用性だよな
つまりJavaは色んな所で使われてる言語だから
Javaできますって言っておけば採用されやすい。
自分が実用性がある人間になりたいならJava一択
> 実用性を重視するならJava一択
それって言語の実用性じゃなくて
人材的な意味での実用性だよな
つまりJavaは色んな所で使われてる言語だから
Javaできますって言っておけば採用されやすい。
自分が実用性がある人間になりたいならJava一択
637デフォルトの名無しさん
2017/02/11(土) 15:23:34.94ID:H7Znugc/ いい加減スレチ
638デフォルトの名無しさん
2017/02/11(土) 15:50:08.46ID:ffoIlYEu 言語なんかいくつ修得してもいいんだから、大人しくJava勉強しとけ
639デフォルトの名無しさん
2017/02/11(土) 17:33:33.41ID:tLczzgrK 何がなんだか仕様に混乱するから3つまでしか習得出来ません
4つめ覚えるとなにかを忘れます
4つめ覚えるとなにかを忘れます
640デフォルトの名無しさん
2017/02/11(土) 21:11:41.56ID:y7nchZP8 621
> むしろなぜXPを使ってるのか知りたい
動作確認だよ
XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから
いちいち全OSを揃えて動作確認すると
シロウトの趣味でアプリケーション開発するには荷が重すぎる
> むしろなぜXPを使ってるのか知りたい
動作確認だよ
XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから
いちいち全OSを揃えて動作確認すると
シロウトの趣味でアプリケーション開発するには荷が重すぎる
641デフォルトの名無しさん
2017/02/11(土) 22:46:04.81ID:p/3UeWk3 いちいち全OSで動作させたいと思う理由は何?
サポートが終了しているXPで動作する必要はないし
Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし
7と10で動作確認すればいいじゃん
サポートが終了しているXPで動作する必要はないし
Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし
7と10で動作確認すればいいじゃん
642デフォルトの名無しさん
2017/02/11(土) 23:02:42.86ID:ffoIlYEu XPはまだ結構現役で残ってるぞ
643デフォルトの名無しさん
2017/02/11(土) 23:33:55.67ID:p/3UeWk3 俺の周りに見たことない
644デフォルトの名無しさん
2017/02/13(月) 12:16:27.67ID:vLa3XGqC 俺の周りでは、いまだにNT3.5.1を使ってる取引先があるのだが。
645デフォルトの名無しさん
2017/02/13(月) 18:59:46.87ID:VKyPIbro 用途を特定した専用マシンみたいなのは、特にOSを入れ替えずにずっと使うな
測定機器や実験機器の一部とか、何かの制御用とか
ただ、そんなマシンは新しいソフトを入れたりもしないから、
互換性とかどうでもいい世界だけど
測定機器や実験機器の一部とか、何かの制御用とか
ただ、そんなマシンは新しいソフトを入れたりもしないから、
互換性とかどうでもいい世界だけど
646デフォルトの名無しさん
2017/02/17(金) 23:51:32.63ID:QUNiBjhs 以前こちらでお世話になった顔文字のど素人です。
$ perl -p -e 's/(..)/$1 /g;'
123456
↓
12 34 56
恐縮ですが上記の逆(スペースの削除)をご指導願います。
00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6
↓
0006fc2558500a0054923103494688d0c6
よろしくお願いいたします _(_^_)_
$ perl -p -e 's/(..)/$1 /g;'
123456
↓
12 34 56
恐縮ですが上記の逆(スペースの削除)をご指導願います。
00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6
↓
0006fc2558500a0054923103494688d0c6
よろしくお願いいたします _(_^_)_
647デフォルトの名無しさん
2017/02/18(土) 00:14:42.65ID:eUOj9Lyv >>646
s/\s//g
s/\s//g
648デフォルトの名無しさん
2017/02/18(土) 00:53:08.66ID:UURjaLCm >>646
死んだ方がいいレベル
死んだ方がいいレベル
649デフォルトの名無しさん
2017/02/18(土) 00:58:30.39ID:np+iCDRO とにかく学習しようという気がまったく見えないのが凄い
650デフォルトの名無しさん
2017/02/18(土) 01:09:34.78ID:oWVhdX8p 普通1時間以内に学習を完了してそうなものを、10日以上経ってるぞ
652デフォルトの名無しさん
2017/02/18(土) 21:00:13.31ID:3ABB/Pla だから土曜日に書いたと
653デフォルトの名無しさん
2017/02/26(日) 10:31:20.73ID:cj/RoW+L active perlで、長いファイル名のあるフォルダに対して readdir すると、
エラーになって止まるんだけど、どうやって回避すればいいんだ
エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、
とかが出来ない
エラーになって止まるんだけど、どうやって回避すればいいんだ
エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、
とかが出来ない
654デフォルトの名無しさん
2017/02/26(日) 10:39:23.76ID:OmTNhTRr windowsのエラーじゃねぇの?
とりあえずevalすれば実行は止まらないと思うけど
とりあえずevalすれば実行は止まらないと思うけど
655デフォルトの名無しさん
2017/02/27(月) 08:34:03.50ID:hOw/b7i/ >>653
ひょっとして、ファイル名にユニコード文字が混じったりしてない?
ひょっとして、ファイル名にユニコード文字が混じったりしてない?
656デフォルトの名無しさん
2017/02/27(月) 08:44:24.40ID:hOw/b7i/ readdirのユニコード版なら、こうゆうモジュールもある。
http://search.cpan.org/~xaicron/Win32-Unicode-0.26/lib/Win32/Unicode/Dir.pm
http://search.cpan.org/~xaicron/Win32-Unicode-0.26/lib/Win32/Unicode/Dir.pm
657デフォルトの名無しさん
2017/02/27(月) 18:47:01.31ID:dx1g9tP+ unicodeは入ってない
単に長いだけ
単に長いだけ
658デフォルトの名無しさん
2017/02/27(月) 22:36:40.65ID:8LXDZxYt Win32::LongPathは?
659デフォルトの名無しさん
2017/02/27(月) 22:51:51.90ID:dx1g9tP+ それを使うと、既存のreaddir の挙動が変わるの?
660デフォルトの名無しさん
2017/02/28(火) 08:31:44.98ID:ECHoSeWI >>659
「長い」って何文字なん?260文字以下だと問題ないはず。
「長い」って何文字なん?260文字以下だと問題ないはず。
661デフォルトの名無しさん
2017/02/28(火) 18:54:26.71ID:Gbg+HMKR それ以上あったので問題があった
662デフォルトの名無しさん
2017/03/01(水) 08:44:35.66ID:RfMjQxG+ Windowsで260文字以上のファイル名を普通に作ろうとすると、
「ファイル名が長すぎる」とエラーが出るが、
ネットワークドライブを使うと、作れてしまうようだ。
ただ、それを実際に使おうとすると、ドツボに嵌るみたいだな。
「ファイル名が長すぎる」とエラーが出るが、
ネットワークドライブを使うと、作れてしまうようだ。
ただ、それを実際に使おうとすると、ドツボに嵌るみたいだな。
663デフォルトの名無しさん
2017/03/01(水) 21:51:27.16ID:KTTjixcr ファイル名っていうか、パスを含めた長さな
664デフォルトの名無しさん
2017/03/05(日) 00:13:47.26ID:hhHVIZUN @file = split(/\n/,`dir /s /b *.* 2>NUL`);
な。次スレのテンプレに追加するから。
な。次スレのテンプレに追加するから。
665デフォルトの名無しさん
2017/03/05(日) 15:57:50.73ID:des1Iukd forkするのOKなら何でもありじゃん
666デフォルトの名無しさん
2017/03/08(水) 23:48:39.27ID:0EPJtM8y シェルとカーネルを縦横無尽に使いこなすのがPerlプログラミングの醍醐味。
667デフォルトの名無しさん
2017/03/09(木) 15:21:10.67ID:lYcZyteE print 1+(2+3);
print (1+2)+3;
この二つの文の違いを使いこなすのが、Perlプログラミングの醍醐味。
print (1+2)+3;
この二つの文の違いを使いこなすのが、Perlプログラミングの醍醐味。
668デフォルトの名無しさん
2017/03/14(火) 00:58:03.78ID:mRCDOzFa awk 由来の 0+ ハックや "". ハックは常識として使いこなすのが、Perlプログラミングのたしなみ。
669デフォルトの名無しさん
2017/03/15(水) 23:38:07.63ID:WjEGzhMP ハックと言ってる時点で使ってはダメなものだ
670デフォルトの名無しさん
2017/03/16(木) 00:17:10.27ID:a1z6pXZc 工夫できないなら何を使ってもダメ
sub to_s { $_[0].'' }
sub to_i { $_[0]+00 }
sub to_s { $_[0].'' }
sub to_i { $_[0]+00 }
671デフォルトの名無しさん
2017/03/16(木) 06:54:07.57ID:t2soddN5 >awk 由来の 0+ ハックや "". ハックは
そもそも、常識でないといいたげな、このレスは何?
まともな参考本読めば、最初の方に書いてある。
ハックでもなんでもない
そもそも、常識でないといいたげな、このレスは何?
まともな参考本読めば、最初の方に書いてある。
ハックでもなんでもない
672デフォルトの名無しさん
2017/03/20(月) 17:47:23.90ID:5loIUxX7 Win-7、Active Perl 5.16です。Unicode文字を含むperlの処理結果を
utf16leで出力しようとしています。下のようにやってみましたが、ダメでした。
出力をバイナリエディタでみると、改行コードが変な風にいじられていました。
binmode STDOUT => ":encoding(utf16le)";
print "ユニコード文字を含むテキスト\n";
色々試した結果、下のスクリプトのようにすると、概ね動くことが解り
ましたが、動かない場合もあります。下の例では、「aaaaa」は出力され
ますが、「bbbbb」は出力されません。どうするのが正しいでしょうか?
use utf8;
binmode STDOUT;
use Encode qw/ encode decode /;
sub wprint{
foreach(@_){
s/\n/\r\n/g;
print encode('utf-16-le', $_);
}
}
wprint "a"x5, "\n";
foreach (1..5){
wprint "b";
}
wprint "\n";
utf16leで出力しようとしています。下のようにやってみましたが、ダメでした。
出力をバイナリエディタでみると、改行コードが変な風にいじられていました。
binmode STDOUT => ":encoding(utf16le)";
print "ユニコード文字を含むテキスト\n";
色々試した結果、下のスクリプトのようにすると、概ね動くことが解り
ましたが、動かない場合もあります。下の例では、「aaaaa」は出力され
ますが、「bbbbb」は出力されません。どうするのが正しいでしょうか?
use utf8;
binmode STDOUT;
use Encode qw/ encode decode /;
sub wprint{
foreach(@_){
s/\n/\r\n/g;
print encode('utf-16-le', $_);
}
}
wprint "a"x5, "\n";
foreach (1..5){
wprint "b";
}
wprint "\n";
673デフォルトの名無しさん
2017/03/20(月) 19:53:29.20ID:SJAmj6b4 >改行コードが変な風にいじられていました
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)
>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)
>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう
674デフォルトの名無しさん
2017/03/21(火) 08:41:14.27ID:RAznfVax675デフォルトの名無しさん
2017/03/31(金) 19:10:56.36ID:I7SB2jha print (1+2)+(4+5)+6+7;
3
3
676デフォルトの名無しさん
2017/03/31(金) 21:37:50.01ID:lffYMjCi print print (1+2)+(4+5)+6+7;
3
23
print print print (1+2)+(4+5)+6+7;
3
23
1 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
3
23
print print print (1+2)+(4+5)+6+7;
3
23
1 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
677デフォルトの名無しさん
2017/03/31(金) 22:38:54.66ID:PsuuxH/N $hash{'aaa'}{'bbb'}{'ccc'} = 1;
みたいなことをしても、普通に通るのが凄いよな
それでいて、仕様としては別に多次元ハッシュなんか対応してない
みたいなことをしても、普通に通るのが凄いよな
それでいて、仕様としては別に多次元ハッシュなんか対応してない
678デフォルトの名無しさん
2017/04/01(土) 08:51:48.01ID:AF9KLm8F なにをするんでもいちいちチェックが入って膨大な自動操作が裏で行われてる証拠。
さらに変数と実体を結びつけるデータテーブルもかなりの容量を使用してる。
木構造の探索などをやると、動作がCの10倍程度違うと言われるけど、やってみたらメモリ容量が100倍以上違うことも確認された。(将棋の盤面探索)。
まあ一時的にスクリプトが欲しいときとか、それが良い時はそれで良いけど、
通常のソフトウェアを作る時内部でそんなことが起きれてば完全な欠陥なわけであって。
さらに変数と実体を結びつけるデータテーブルもかなりの容量を使用してる。
木構造の探索などをやると、動作がCの10倍程度違うと言われるけど、やってみたらメモリ容量が100倍以上違うことも確認された。(将棋の盤面探索)。
まあ一時的にスクリプトが欲しいときとか、それが良い時はそれで良いけど、
通常のソフトウェアを作る時内部でそんなことが起きれてば完全な欠陥なわけであって。
679デフォルトの名無しさん
2017/04/01(土) 17:07:22.61ID:y/HEzjsw そうか、100倍以上違うのか。試してみたいからソースコードを見せてくれ。
680デフォルトの名無しさん
2017/04/01(土) 17:19:36.13ID:aXA7htV2 >>678
えーと、インタプリタとコンパイラって知ってるかい?
えーと、インタプリタとコンパイラって知ってるかい?
681デフォルトの名無しさん
2017/04/02(日) 11:42:32.36ID:W390vP7B 1 ビット × 8000000 のビットマップって Perl でどうやるんだろう? こうかな?
$perl -e '$h{ $_ } = 1 foreach 0 .. 7999999; system("bash","-c","ps -p \$PPID -F");'
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
i 5240 4743 96 253250 997920 1 11:18 pts/4 00:00:05 perl -e $h{
$
みたいなことでもしたんだろうか。
$perl -e '$h{ $_ } = 1 foreach 0 .. 7999999; system("bash","-c","ps -p \$PPID -F");'
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
i 5240 4743 96 253250 997920 1 11:18 pts/4 00:00:05 perl -e $h{
$
みたいなことでもしたんだろうか。
682デフォルトの名無しさん
2017/04/02(日) 12:21:59.20ID:n1w2M1cg■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【芸能】『バンダイナムコフェス』上海公演 日本人歌手・大槻マキが歌唱中に強制退場… 急に音を止められスタッフらしき人達に [冬月記者★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 [ぐれ★]
- 橋下徹氏 高市首相“台湾有事”発言に「政治家の失言で一部の人でも仕事がキャンセルに…我々は認めていいのかな」疑問呈す [muffin★]
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」★2 [ぐれ★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★5 [ぐれ★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★6 [ぐれ★]
- (*´ω`*)おはようドリーム
- 🇯🇵天皇陛下に万歳しながら鳥居くぐったりよじのぼったりしてる
- おい千晴😡
- 中華房 麻辣燙 ってやつ急にあちこち置いてあるな
- 湖の湖畔でテントと椅子組み立ててコーヒー飲みながら読書するのが趣味←どんなイメージ?
- デリヘル呼んだら私かわいいからプレミア料金ですって言ってた
