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箱目
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2014/02/19(水) 23:36:23.29881デフォルトの名無しさん
2017/10/12(木) 22:58:50.94ID:4iOww/iD makeがちゃんとした文法になる日は来るんだろうか
882デフォルトの名無しさん
2017/10/13(金) 09:46:32.50ID:BQhKbAsH 880さん、ありがとうございます。
cppがインストールされていないのですね。。
pkginfoでみるとそれらしいものが入っているのですが、下記とは違うものでしょうか。
# pkginfo -i |grep cpp
system SUNWcpp Solaris cpp
GNOME2 SUNWsigcpp Libsigc++ - a library that implements typesafe callback system for standard
C++
GNOME2 SUNWsigcpp-devel Libsigc++ - a library that implements typesafe callback system for standard
C++ - development files
cppがインストールされていないのですね。。
pkginfoでみるとそれらしいものが入っているのですが、下記とは違うものでしょうか。
# pkginfo -i |grep cpp
system SUNWcpp Solaris cpp
GNOME2 SUNWsigcpp Libsigc++ - a library that implements typesafe callback system for standard
C++
GNOME2 SUNWsigcpp-devel Libsigc++ - a library that implements typesafe callback system for standard
C++ - development files
883880
2017/10/13(金) 21:28:27.18ID:4p1OUNBb 問題は解決しましたか? Solaris のことは分からないのでこれ以上お役に立てそうにありません。
まだ解決していないのなら perlsolaris というマニュアルがあるはずですから読んでみてください。
その上で、Solaris のことをよく知っている人に聞くのがよろしいかと思います。
まだ解決していないのなら perlsolaris というマニュアルがあるはずですから読んでみてください。
その上で、Solaris のことをよく知っている人に聞くのがよろしいかと思います。
884デフォルトの名無しさん
2017/10/14(土) 22:03:44.55ID:7hq5DvWK ダメですね。。
もうちょっとネットで調べてみます。
もうちょっとネットで調べてみます。
885デフォルトの名無しさん
2017/10/20(金) 15:42:18.30ID:1xv6Ebpc 流れを切ってすみません。
半角カタカナを全角カタカナにしてファイルに書き込みたいです。
Cannot decode string with wide characters at...
のエラーになります。どこをどう修正すればよいでしょうか。
use utf8; use Encode; use Encode::JP::H2Z;
open(IN, "<:encoding(cp932)", "src.txt");
open(OUT, ">:encoding(cp932)", "dst.txt");
...
#$strはファイルから読み込んだ文字列
Encode::from_to($str, "utf8", "euc-jp"); #どうもここでひっかかる
Encode::JP::H2Z::h2z(\$str);
Encode::from_to($str, "euc-jp", "utf8");
...
といったコードなのですが・・・。
Shift-JISのコードだと上手く動くのですが・・・。
utf8で標準モジュールの利用で行いたいです。どなたかよろしくお願いします。
半角カタカナを全角カタカナにしてファイルに書き込みたいです。
Cannot decode string with wide characters at...
のエラーになります。どこをどう修正すればよいでしょうか。
use utf8; use Encode; use Encode::JP::H2Z;
open(IN, "<:encoding(cp932)", "src.txt");
open(OUT, ">:encoding(cp932)", "dst.txt");
...
#$strはファイルから読み込んだ文字列
Encode::from_to($str, "utf8", "euc-jp"); #どうもここでひっかかる
Encode::JP::H2Z::h2z(\$str);
Encode::from_to($str, "euc-jp", "utf8");
...
といったコードなのですが・・・。
Shift-JISのコードだと上手く動くのですが・・・。
utf8で標準モジュールの利用で行いたいです。どなたかよろしくお願いします。
886デフォルトの名無しさん
2017/10/20(金) 17:53:57.14ID:P8duaFnv 目的がそれだけなら、こんな感じになるかな。
open( IN,'<','src.txt')
open( OUT,'>','dst.txt')
Encode::from_to( $str,'cp932','euc-jp');
Encode::JP::H2Z::h2z(\$str);
Encode::from_to( $str,'euc-jp','cp932');
どうしてかというと、from_to に渡すのは Perl の用語で言うなら文字列ではなくバイト列。
だから入力時にデコードする必要は無い。
日本語でのパターンマッチなどのためにデコードしてある場合は
from_to ではなく encode を使う。
Encode のマニュアルを読んでください。
標準モジュールしか使えないわけじゃないのなら Unicode::Japanese を使ってみてはどうでしょう。
open( IN,'<','src.txt')
open( OUT,'>','dst.txt')
Encode::from_to( $str,'cp932','euc-jp');
Encode::JP::H2Z::h2z(\$str);
Encode::from_to( $str,'euc-jp','cp932');
どうしてかというと、from_to に渡すのは Perl の用語で言うなら文字列ではなくバイト列。
だから入力時にデコードする必要は無い。
日本語でのパターンマッチなどのためにデコードしてある場合は
from_to ではなく encode を使う。
Encode のマニュアルを読んでください。
標準モジュールしか使えないわけじゃないのなら Unicode::Japanese を使ってみてはどうでしょう。
887885
2017/10/21(土) 02:31:17.21ID:JUnyPSe2 >886
返信ありがとうございます。
他に日本語の処理があるのでencoding(cp932)としています。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('utf-8',$str);
としても
#$str=Encode::encode('utf-8',$str);#これの有無に関わらず
$str=Unicode::Japanese->new($str)->h2zKana->get;
(ためしにUnicode::Japaneseを使ってみましたが、標準モジュールで行いたいです)
"\x{xxxx}" does not map to cp932 at ....
とワーニングだらけで>:encoding(cp932)がうまくいっていないというか
それ以前の変換がうまくいっていないようです・・・。
返信ありがとうございます。
他に日本語の処理があるのでencoding(cp932)としています。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('utf-8',$str);
としても
#$str=Encode::encode('utf-8',$str);#これの有無に関わらず
$str=Unicode::Japanese->new($str)->h2zKana->get;
(ためしにUnicode::Japaneseを使ってみましたが、標準モジュールで行いたいです)
"\x{xxxx}" does not map to cp932 at ....
とワーニングだらけで>:encoding(cp932)がうまくいっていないというか
それ以前の変換がうまくいっていないようです・・・。
888855
2017/10/21(土) 02:40:01.52ID:JUnyPSe2 連投すみません。encodeとdecode間違ってるなと思い
$str=Encode::decode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::encode('euc-jp',$str);
とすると、
Wide character in subroutine entry at...
で出力が0バイトとなってしまいます・・・。
$str=Encode::decode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::encode('euc-jp',$str);
とすると、
Wide character in subroutine entry at...
で出力が0バイトとなってしまいます・・・。
889885
2017/10/21(土) 03:03:22.99ID:JUnyPSe2 何度もすみません。できました。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('euc-jp',$str);
でした。
> 886
encodeを使うアドバイスありがとうございました。助かりました。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('euc-jp',$str);
でした。
> 886
encodeを使うアドバイスありがとうございました。助かりました。
890デフォルトの名無しさん
2017/10/28(土) 14:12:24.45ID:86e9E3uL #!/usr/local/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
print <<"EOM";
Content-tyoe: text/html; charset=shift_jis\n\n
<html><body>
EOM
eval {require DBI;};
if($@) {
print "DBI NG<br>\n";
} else {
print "DBI OK<br>\n";
}
undef $@;
eval {require DBD::SQLite; }
if($@) {
print "DBD::SQLite NG<br>\n";
} else {
print "DBD::SQLite OK<br>\n";
}
print "</body></html>";
sqlchk.cgiの19行目の構文エラー。 "){"
と出るんですが何が原因か分かりません。もしよろしければ教えていただけないでしょうか?
use strict;
use CGI::Carp qw(fatalsToBrowser);
print <<"EOM";
Content-tyoe: text/html; charset=shift_jis\n\n
<html><body>
EOM
eval {require DBI;};
if($@) {
print "DBI NG<br>\n";
} else {
print "DBI OK<br>\n";
}
undef $@;
eval {require DBD::SQLite; }
if($@) {
print "DBD::SQLite NG<br>\n";
} else {
print "DBD::SQLite OK<br>\n";
}
print "</body></html>";
sqlchk.cgiの19行目の構文エラー。 "){"
と出るんですが何が原因か分かりません。もしよろしければ教えていただけないでしょうか?
891デフォルトの名無しさん
2017/10/28(土) 14:36:19.07ID:yzxLOqe0892デフォルトの名無しさん
2017/10/28(土) 15:04:21.68ID:86e9E3uL 助かりました。ありがとうございました^−^
893デフォルトの名無しさん
2017/11/01(水) 19:40:06.83ID:FhCkv10M ^−^
894デフォルトの名無しさん
2017/11/01(水) 21:59:57.34ID:uQFQAfJE (^_^;
895デフォルトの名無しさん
2017/11/22(水) 19:37:11.64ID:kPeZVcC+ (^────────────^)
896デフォルトの名無しさん
2017/11/22(水) 22:55:47.27ID:oTRzAO+2 (^________________^;
897デフォルトの名無しさん
2017/11/23(木) 00:10:28.02ID:kTaFEskE :-)
898デフォルトの名無しさん
2017/11/23(木) 18:54:17.85ID:8ru0xFWh :────────────)
899デフォルトの名無しさん
2017/12/05(火) 14:22:42.29ID:nNRKwkIq APIアクセスでのレスポンスをDumperしたら下みたいに返ってきたんだけど
'https://hogehoge.hoge/'を取得するにはどうアクセスしたらいいです?
$VAR1 = bless( {
'url' => bless( do{\(my $o = 'https://hogehoge.hoge/')}, 'URI::https' )
}, 'Entity::Tag' );
'https://hogehoge.hoge/'を取得するにはどうアクセスしたらいいです?
$VAR1 = bless( {
'url' => bless( do{\(my $o = 'https://hogehoge.hoge/')}, 'URI::https' )
}, 'Entity::Tag' );
900デフォルトの名無しさん
2017/12/07(木) 10:28:22.13ID:OnTOXu6z ファイルに書くときに、closeをせず明示的にフラッシュしたいんだけど
どうしたらいいの?
selectやautoflushは明示的ではないのでできれば使いたくない
どうしたらいいの?
selectやautoflushは明示的ではないのでできれば使いたくない
901デフォルトの名無しさん
2017/12/07(木) 10:57:31.26ID:ULPWPGO9 >>900
http://perldoc.jp/docs/perl/perlfaq5.pod#How32do32I32flush47unbuffer32an32output32filehandle63-32Why32must32I32do32this63
> IO::Handle オブジェクトには flush メソッドもあります。
#!/usr/bin/perl -w
use strict;
for (1..10) {
print '.';
sleep 2;
STDOUT->flush;
}
print "!\n";
http://perldoc.jp/docs/perl/perlfaq5.pod#How32do32I32flush47unbuffer32an32output32filehandle63-32Why32must32I32do32this63
> IO::Handle オブジェクトには flush メソッドもあります。
#!/usr/bin/perl -w
use strict;
for (1..10) {
print '.';
sleep 2;
STDOUT->flush;
}
print "!\n";
902デフォルトの名無しさん
2017/12/26(火) 21:57:47.00ID:PAyaH1Yv =~ 正規表現で中身を置換ができる事は理解できたんですが、
中身を入れ替えたいんじゃなく別の変数に入れたいときはどう書けばいいんでしょうか?
現在の自分の知識だと、例えば引数にとった文字列を置換してある変数に入れるとき
$_ = $ARGV[0];
$_ =~ s/mukimuki/mukemuke/;
$hoge = $_;
こんな風に無駄に $_ を経由した書き方になってしまいます。
ほかの言語風に言うと
$hoge = $ARGV[0].replaceWith(s/mukimuki/mukemuke/);
こんな感じで書きたいのですが。
中身を入れ替えたいんじゃなく別の変数に入れたいときはどう書けばいいんでしょうか?
現在の自分の知識だと、例えば引数にとった文字列を置換してある変数に入れるとき
$_ = $ARGV[0];
$_ =~ s/mukimuki/mukemuke/;
$hoge = $_;
こんな風に無駄に $_ を経由した書き方になってしまいます。
ほかの言語風に言うと
$hoge = $ARGV[0].replaceWith(s/mukimuki/mukemuke/);
こんな感じで書きたいのですが。
903デフォルトの名無しさん
2017/12/26(火) 22:06:02.40ID:Vj82fll/ ($hoge = $ARGV[0]) =~ s/mukimuki/mukemuke/;
こう書くのがセオリーかな
こう書くのがセオリーかな
904デフォルトの名無しさん
2017/12/26(火) 22:37:33.36ID:3f/g1GW0 >>902
Perl 5.14.0 以降なら /r も使える
http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod#Non-destructive32substitution
Perl 5.14.0 以降なら /r も使える
http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod#Non-destructive32substitution
905902
2017/12/27(水) 03:38:54.44ID:885vGvc2906デフォルトの名無しさん
2017/12/27(水) 15:34:07.71ID:yY2jVcTO perlスクリプトの稼働率は今どれくらいなんだろうか?
PHP流行から、徐々にフェードアウトしてるし
PHPオワコン説が流れだした頃から、perl6が登場したけど
存在感がないんだよなー
PHP流行から、徐々にフェードアウトしてるし
PHPオワコン説が流れだした頃から、perl6が登場したけど
存在感がないんだよなー
907デフォルトの名無しさん
2017/12/27(水) 19:01:25.94ID:Rj9CQ2gH DeNAとかmixiとかがPerIだけど、置き換えが進むだろうし
新規でメインスクリプトでってのはもうなかなか無いだろうね
新規でメインスクリプトでってのはもうなかなか無いだろうね
908デフォルトの名無しさん
2017/12/27(水) 19:28:49.86ID:tmtXLaBC ちょっと何かするときはperl使うよ。慣れてるので何も見ずに書けるから。
phpがなぜ出てくるのかわからん。使ったことないけどあれwebアプリ用でしょ
phpがなぜ出てくるのかわからん。使ったことないけどあれwebアプリ用でしょ
909デフォルトの名無しさん
2017/12/27(水) 19:55:51.39ID:bfruSbpL ま、しかし、PerlはWebでしか使われてないわけではないからな。
910デフォルトの名無しさん
2017/12/27(水) 19:56:46.60ID:bfruSbpL >>908
多分Webプログラムでの事しか思い浮かばなかったのだろう。
多分Webプログラムでの事しか思い浮かばなかったのだろう。
911デフォルトの名無しさん
2017/12/27(水) 23:26:51.61ID:+qI9wAl8 素人に毛が生えたレベルの低スキル層でも実用的なwebアプリ作れる点でPHPは凄いよ。
フレームワークの種類も情報量も多いし。
CLIも作りやすくなってる。一からCLIアプリ作るときにPHP使う優位性は無いけど
webアプリに付随するものとかなら十分。
フレームワークの種類も情報量も多いし。
CLIも作りやすくなってる。一からCLIアプリ作るときにPHP使う優位性は無いけど
webアプリに付随するものとかなら十分。
912デフォルトの名無しさん
2017/12/28(木) 00:19:43.19ID:O5Tikz8c フォーマット変換とかテキスト一括処理系は、perlでなれるとどれもしっくりこないんだよなぁ。
shを補完する感じで使ってる最近は。
cとセットで使いたくなったらpython?を勉強するかもしれない。
shを補完する感じで使ってる最近は。
cとセットで使いたくなったらpython?を勉強するかもしれない。
913ゆっきー ◆ExGQrDul2E
2017/12/28(木) 03:17:44.94ID:NczIEmFQ 10年ぐらい前の入門書で、カンマとドットを間違えて
人工衛星が明後日の方向に飛んで言ったとか何とか、小中学生ぐらいの時に読んだ記憶が有る。
人工衛星が明後日の方向に飛んで言ったとか何とか、小中学生ぐらいの時に読んだ記憶が有る。
914デフォルトの名無しさん
2017/12/28(木) 09:29:38.01ID:wX0EFIYP そういやそんなことあったなあ。
915デフォルトの名無しさん
2017/12/28(木) 18:55:35.20ID:Er3In3fn こんなのあったのな。知らなかったよ。
https://qiita.com/AnnPin/items/5f868f0c7cb5d1af306b
https://qiita.com/AnnPin/items/5f868f0c7cb5d1af306b
916デフォルトの名無しさん
2017/12/28(木) 19:24:59.40ID:Ur1ocpFu 粗太陽センサーと精太陽センサーの取得先を取り違える
917デフォルトの名無しさん
2017/12/28(木) 20:38:10.17ID:9xNc6XZe 【IS自爆テロ】「死んだら天国へ行ける」 <九条は必要> 「死んだら靖国に祀られる」【神風特攻隊】
https://rosie.5ch.net/test/read.cgi/liveplus/1514253929/l50
【東海アマ】安倍晋三はどんな殺され方 <祖父の代りに絞首刑> 公約反故は自殺に繋がる【世界教師】
http://rosie.5ch.net/test/read.cgi/liveplus/1514425832/l50
https://rosie.5ch.net/test/read.cgi/liveplus/1514253929/l50
【東海アマ】安倍晋三はどんな殺され方 <祖父の代りに絞首刑> 公約反故は自殺に繋がる【世界教師】
http://rosie.5ch.net/test/read.cgi/liveplus/1514425832/l50
918デフォルトの名無しさん
2017/12/31(日) 12:51:33.73ID:6G2PkezB >>913
それ、打ち上げ延期
それ、打ち上げ延期
919デフォルトの名無しさん
2018/01/01(月) 05:59:15.42ID:4wMbPbHX >>918
あ、それで済んだの?そうか、じゃあ都市伝説か。
あ、それで済んだの?そうか、じゃあ都市伝説か。
920デフォルトの名無しさん
2018/01/01(月) 12:14:32.50ID:rcsYJFXY >>908
PHPが重宝されてるのはDB連携のPDOが便利すぎてハゲるから
PDO一つあれば、オラクル、ポスグレ、mysql、sqlサーバー、DB2、SQLITEなんでも
同じ記述で接続できるからな
ただ、関数定義に一貫性がない、変数スコープのグローバル化が面倒、
型変換で楽しいバグが発生するなど
素人向けと思って甘く見ると大火傷する諸刃の剣
PHPが重宝されてるのはDB連携のPDOが便利すぎてハゲるから
PDO一つあれば、オラクル、ポスグレ、mysql、sqlサーバー、DB2、SQLITEなんでも
同じ記述で接続できるからな
ただ、関数定義に一貫性がない、変数スコープのグローバル化が面倒、
型変換で楽しいバグが発生するなど
素人向けと思って甘く見ると大火傷する諸刃の剣
921デフォルトの名無しさん
2018/01/01(月) 12:30:16.97ID:zAUlE2YO 手に馴染んだ道具として今後もperlを使うだろうな
rubyに持ち替えた方が使い勝手はいいんだけど、
そもそもrubyが無い環境が多いので使えなくては意味がない
rubyに持ち替えた方が使い勝手はいいんだけど、
そもそもrubyが無い環境が多いので使えなくては意味がない
922デフォルトの名無しさん
2018/01/01(月) 18:55:01.09ID:FPPCegVg perlの持ち替えならpythonがいいと思う。
特に最近のlinux系はpythonものが増加傾向だし。
でもまあ、perlあればokじゃね?というのが正直なところ
特に最近のlinux系はpythonものが増加傾向だし。
でもまあ、perlあればokじゃね?というのが正直なところ
923デフォルトの名無しさん
2018/01/02(火) 12:32:50.81ID:Q+9WD3Xu 今年の目標は、新たに言語を勉強することなんだが
Perl、Python、Rubyの違いとそれぞれのメリットを
教えてくだされ
Perl、Python、Rubyの違いとそれぞれのメリットを
教えてくだされ
924デフォルトの名無しさん
2018/01/02(火) 12:41:01.44ID:UbsIsL+c perl どこにでもある
python 人工知能に強い
ruby Railsが使える
python 人工知能に強い
ruby Railsが使える
925デフォルトの名無しさん
2018/01/02(火) 16:34:43.56ID:pQ/3ped7 >>920
DBはPerlでもDBIと各DB用のDBIモジュールがあれば同じようにアクセスできるよ。
てか、その辺は他の言語でもだいたい同じようにできないか?みんなJavaのJDBCの影響受けて接続部分で違いを吸収してなんとかしてるように思うんだが。
DBはPerlでもDBIと各DB用のDBIモジュールがあれば同じようにアクセスできるよ。
てか、その辺は他の言語でもだいたい同じようにできないか?みんなJavaのJDBCの影響受けて接続部分で違いを吸収してなんとかしてるように思うんだが。
926デフォルトの名無しさん
2018/01/02(火) 16:36:32.56ID:pQ/3ped7927デフォルトの名無しさん
2018/01/03(水) 00:47:07.06ID:0mS9Giqv >>925
なるほど、どこも似たような機能を実装してきてるわけか
なるほど、どこも似たような機能を実装してきてるわけか
928デフォルトの名無しさん
2018/01/03(水) 01:45:39.60ID:mxmMGWxl ORM使えば各DBのSQLの差異も気にせず使えるぜよ
929デフォルトの名無しさん
2018/01/03(水) 20:21:48.88ID:vVUVg3Hi Perl習得も今年の目標の一つなんだけど
Linuxの環境構築しておいた方がいい?
それともwin64でもサクサク動かせる?
Linuxの環境構築しておいた方がいい?
それともwin64でもサクサク動かせる?
930デフォルトの名無しさん
2018/01/04(木) 11:48:53.39ID:vxw86c0g windows環境でperlなんてまず使わないだろうし、linux環境構築したほうがいいんじゃない?shも覚えるし。。。
webページ作りたいならperlはやめとけ
webページ作りたいならperlはやめとけ
931デフォルトの名無しさん
2018/01/04(木) 18:26:44.77ID:Eqt08FX4 >>929
どうしてもっていうならWindowsでもいいとは思うがいまいち面倒かも知れない。
知っての通りファイルシステムやその他細かい点が色々違うから。
かといってわざわざ Linux 動く環境を作るのは面倒だという場合は
Windows Subsystem for Linux 使えばいい。これだと Kernel は
Linux のふりをして動く Windows になって、その他は Linux とほぼ同じだ。
Windows 内のファイルは /mnt/c/ にマウントされていて Windows 用の
コマンドも(全てではないと思うが)使える。
どうしてもっていうならWindowsでもいいとは思うがいまいち面倒かも知れない。
知っての通りファイルシステムやその他細かい点が色々違うから。
かといってわざわざ Linux 動く環境を作るのは面倒だという場合は
Windows Subsystem for Linux 使えばいい。これだと Kernel は
Linux のふりをして動く Windows になって、その他は Linux とほぼ同じだ。
Windows 内のファイルは /mnt/c/ にマウントされていて Windows 用の
コマンドも(全てではないと思うが)使える。
932デフォルトの名無しさん
2018/01/04(木) 18:30:15.45ID:Eqt08FX4933デフォルトの名無しさん
2018/01/04(木) 18:51:32.73ID:M2GmV8ZJ 要はダクトテープだから
それを必要とする環境で使うのが一番
日常的にいろんな作業をlinux上でしてるなら、きっといろいろ役立つ
そうでないなら用途が見つからない
それを必要とする環境で使うのが一番
日常的にいろんな作業をlinux上でしてるなら、きっといろいろ役立つ
そうでないなら用途が見つからない
934デフォルトの名無しさん
2018/01/04(木) 21:49:12.83ID:bZ/07R3T ありがとう、こっちの住民は親切で助かったよ
WSLはもっと調べて導入検討するわ
>>933
仕事でかなりLinuxは使ってるよ。特にVMは仕事で必須なんで
一からセッティングしてる
どうしても起動系とかハード周りになると
Perlの知識ないときつい部分が出てきたんで
WSLはもっと調べて導入検討するわ
>>933
仕事でかなりLinuxは使ってるよ。特にVMは仕事で必須なんで
一からセッティングしてる
どうしても起動系とかハード周りになると
Perlの知識ないときつい部分が出てきたんで
935デフォルトの名無しさん
2018/01/05(金) 19:25:38.46ID:T2NhU/kF WSLは結構便利だと思うよ。何せWindows側のコマンド動くし、起動時にWindows側のPATHを /mnt/c 以下のディレクトリとして引き継いでくれるし。
前にKotlinをインストールした時はWindows側で C:\kotlinc 以下にインストールしてその下の bin に PATH 通しておいたら WSL の方でもそのままそれが使えた(JavaVMは別途インストールしたけどね)。
こんな感じで共有が当たり前のようにできる。
まあしかし今のところサーバー用のプログラムは完全には動かないだろうからサーバーとしての動きを期待するならやはり VirtuslBox とかで Linux 動かした方が良いだろうね。
または古いPC等に本当にインストールする。
前にKotlinをインストールした時はWindows側で C:\kotlinc 以下にインストールしてその下の bin に PATH 通しておいたら WSL の方でもそのままそれが使えた(JavaVMは別途インストールしたけどね)。
こんな感じで共有が当たり前のようにできる。
まあしかし今のところサーバー用のプログラムは完全には動かないだろうからサーバーとしての動きを期待するならやはり VirtuslBox とかで Linux 動かした方が良いだろうね。
または古いPC等に本当にインストールする。
936デフォルトの名無しさん
2018/01/05(金) 22:44:53.33ID:2xeG2hRa ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
flockだとロックかけちゃうのでだめです
flockだとロックかけちゃうのでだめです
937デフォルトの名無しさん
2018/01/05(金) 23:02:38.22ID:/B3nNmE2 アトミックが保証されてるコマンドが必要とかそんなことになるような
938デフォルトの名無しさん
2018/01/06(土) 06:45:30.55ID:MH4bKWED fcntl のマニュアルには、できるようなことが書かれてるけどどうか。
申し訳ないが実際に試してみるほど暇じゃないから、役に立つかどうかは自分で判断してほしい。
申し訳ないが実際に試してみるほど暇じゃないから、役に立つかどうかは自分で判断してほしい。
939デフォルトの名無しさん
2018/01/06(土) 11:11:20.45ID:3YD8ke1c ロックしていないのに、ロックしていることを調べるとはこれ如何に。
まぁ、一般には、pidを別ファイルに保存しておいて占有するプロセスをはっきりさせるんじゃないかな〜
ハードリンクとkill -0あたりで調べてみるとよろし??
まぁ、一般には、pidを別ファイルに保存しておいて占有するプロセスをはっきりさせるんじゃないかな〜
ハードリンクとkill -0あたりで調べてみるとよろし??
940デフォルトの名無しさん
2018/01/06(土) 11:27:28.32ID:uhIItiyd セマフォの処理はてきとーに作ってもだいたい動くんだけど、
極まれにおかしくなる
完璧に作ろうと思うとなかなか大変
っていうか、OSが提供してなかったら無理
極まれにおかしくなる
完璧に作ろうと思うとなかなか大変
っていうか、OSが提供してなかったら無理
941デフォルトの名無しさん
2018/01/06(土) 23:54:48.69ID:aO8vJyO+ >>936
ちょっとぐらいロック掛かってもいいじゃん。
F_SETLKなら他がロックしてたら待たずに即エラーになるんだし。
エラーにならずにロックできたら他にロックしてるやつは居なかったってことだよ。
ちょっとぐらいロック掛かってもいいじゃん。
F_SETLKなら他がロックしてたら待たずに即エラーになるんだし。
エラーにならずにロックできたら他にロックしてるやつは居なかったってことだよ。
942デフォルトの名無しさん
2018/01/06(土) 23:56:53.89ID:aO8vJyO+ あ、ごめん。fcntl()でのロックのはなしじゃなかったか。じゃあfcntl()使って。
使えないOSの場合は何かテクニックがあると思うがその場合はOSを書いてくれないと誰も答えられないと思う。
使えないOSの場合は何かテクニックがあると思うがその場合はOSを書いてくれないと誰も答えられないと思う。
943デフォルトの名無しさん
2018/01/07(日) 02:29:51.54ID:6djc4wO2944デフォルトの名無しさん
2018/01/07(日) 06:11:20.40ID:VUVSKv67 まあ落ち着け。まずは何のためにしたいのかということが重要だと思うよ。
ロックを試みることで他のプロセスの邪魔をしたくないというのも目的によっては理解できる。
目的によってはデータベースを使うのが最善かも。
ロックを試みることで他のプロセスの邪魔をしたくないというのも目的によっては理解できる。
目的によってはデータベースを使うのが最善かも。
945デフォルトの名無しさん
2018/01/07(日) 12:06:33.05ID:esrWpXaw >>936
> ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
不可能だよ
なぜなら、仮にそういう関数が有ったとしても
ロックされていると判断した1ナノ秒後には
ロックが解除されてるかもしれないから
もちろんその逆もありうる
つまり関数を実行している時点では正しかったかもしれないが
関数から結果の戻り値を取得した段階では
間違った結果になってるかもしれない
> ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
不可能だよ
なぜなら、仮にそういう関数が有ったとしても
ロックされていると判断した1ナノ秒後には
ロックが解除されてるかもしれないから
もちろんその逆もありうる
つまり関数を実行している時点では正しかったかもしれないが
関数から結果の戻り値を取得した段階では
間違った結果になってるかもしれない
946デフォルトの名無しさん
2018/01/07(日) 13:16:21.35ID:9kbWRuZM だから不可能では無いんだよな
その時点でそうだったことは判る
でも、その情報を元に何かをすることが出来ないので、
情報の使いみちが無い
その時点でそうだったことは判る
でも、その情報を元に何かをすることが出来ないので、
情報の使いみちが無い
947デフォルトの名無しさん
2018/01/07(日) 17:39:55.82ID:xuWfGrV5948デフォルトの名無しさん
2018/01/07(日) 17:43:16.42ID:xuWfGrV5 >>946
使い道は単に確認するだけならあると言えるんじゃないか?
lsofコマンドみたいな確認するだけのコマンドもあるしな。
まあでもほとんどない事は確かだな。やはり自分でロックして成功するかどうかで見た方が良い。
使い道は単に確認するだけならあると言えるんじゃないか?
lsofコマンドみたいな確認するだけのコマンドもあるしな。
まあでもほとんどない事は確かだな。やはり自分でロックして成功するかどうかで見た方が良い。
949938
2018/01/07(日) 17:58:29.25ID:VUVSKv67 そのファイルに対して何かしたいとはどこにも書かれていないんだけどな。
彼が充分に説明しないのが悪いというなら確かにその通りだが。
彼が充分に説明しないのが悪いというなら確かにその通りだが。
950デフォルトの名無しさん
2018/01/08(月) 02:39:29.72ID:3kxjIyqg コマンドプロンプトを自動で開いてperl aaa.txtを自動起動させることはできませんか?
OSはwin7です
目的は複数のperlファイルを数秒で起動することです
日に何度かやるので、手間を省くために1個のperlプログラムを実行すれば10個のコマンドプロンプトが開かれてaaa1からaaa10まで全部実行、みたいにしたいです
OSはwin7です
目的は複数のperlファイルを数秒で起動することです
日に何度かやるので、手間を省くために1個のperlプログラムを実行すれば10個のコマンドプロンプトが開かれてaaa1からaaa10まで全部実行、みたいにしたいです
951デフォルトの名無しさん
2018/01/08(月) 03:02:25.00 >>950
できるっちゃできるけど、その起動をPerlでやる必然性あるの?
バッチファイルでやればよくね?
perl_start.batに
start perl aaa1.txt
start perl aaa2.txt
みたいに書き連ねりゃいいだけじゃん
できるっちゃできるけど、その起動をPerlでやる必然性あるの?
バッチファイルでやればよくね?
perl_start.batに
start perl aaa1.txt
start perl aaa2.txt
みたいに書き連ねりゃいいだけじゃん
952デフォルトの名無しさん
2018/01/08(月) 16:46:09.77ID:QsqxlxVF そのbatファイルをタスク登録(ログオン時実行)とかにしとけば自動実行されるしね
953デフォルトの名無しさん
2018/01/08(月) 18:09:00.53ID:uJ83jHj4 perl関係ねえ
954デフォルトの名無しさん
2018/01/23(火) 09:36:50.60ID:vYqw+N7N open(ロック用ファイルハンドル,ロック用ファイル);
flock(ロック用ファイルハンドル,2);
unlink(ロック用ファイル);
close(ロック用ファイルハンドル); #ロック解除
このようにロックを解除する前にロック用ファイルを削除するのは何か問題ありますか?
ロック解除したあとにロック用ファイルを削除するとロックに隙間ができるので
flock(ロック用ファイルハンドル,2);
unlink(ロック用ファイル);
close(ロック用ファイルハンドル); #ロック解除
このようにロックを解除する前にロック用ファイルを削除するのは何か問題ありますか?
ロック解除したあとにロック用ファイルを削除するとロックに隙間ができるので
955デフォルトの名無しさん
2018/01/23(火) 10:33:50.77ID:ytLWcXDj >>954
flock使うならファイル削除しなきゃいいんだよ。そうすれば隙間はできない。
ファイル削除したいならopenの時のモードで O_EXCL | O_CREAT も指定しておいてエラーが出るかどうかで判別する。
エラーなくオープンできたら成功で、必要な処理が終わったらファイルをクローズする。
ただしこの方法はUNIX系OS以外では通用するかどうかわからないのと、NFS越しのファイルでは使えないかも知れない。
NFS越しでも使えるファイルロックは多分fcntl()のF_SETLKとかだろうと思う(しかしこれもまたOSしだいだ)。
flock使うならファイル削除しなきゃいいんだよ。そうすれば隙間はできない。
ファイル削除したいならopenの時のモードで O_EXCL | O_CREAT も指定しておいてエラーが出るかどうかで判別する。
エラーなくオープンできたら成功で、必要な処理が終わったらファイルをクローズする。
ただしこの方法はUNIX系OS以外では通用するかどうかわからないのと、NFS越しのファイルでは使えないかも知れない。
NFS越しでも使えるファイルロックは多分fcntl()のF_SETLKとかだろうと思う(しかしこれもまたOSしだいだ)。
956デフォルトの名無しさん
2018/01/23(火) 10:34:51.22ID:ytLWcXDj ごめん。訂正。
ファイルクローズするではなくて削除だ。
ファイルクローズするではなくて削除だ。
957デフォルトの名無しさん
2018/01/23(火) 12:02:42.65ID:N8Mjx+M1958デフォルトの名無しさん
2018/01/23(火) 12:28:01.19ID:f+jO8q2F >>957
感じるではなくロックとして機能しないよね?
感じるではなくロックとして機能しないよね?
959デフォルトの名無しさん
2018/01/23(火) 19:08:17.77ID:N8Mjx+M1 >>958
ファイルシステムから見ると削除して作成すると、同じファイル名でも別ファイルになる
排他処理は同じファイルを使ってるもの同士なら出来る
例えばopenしたものをずっと使い続けるプロセス同士なら、削除された後でも相互排他が出来る
ファイルシステムから見ると削除して作成すると、同じファイル名でも別ファイルになる
排他処理は同じファイルを使ってるもの同士なら出来る
例えばopenしたものをずっと使い続けるプロセス同士なら、削除された後でも相互排他が出来る
960デフォルトの名無しさん
2018/01/23(火) 20:56:31.43ID:wO1dM6nx961デフォルトの名無しさん
2018/01/23(火) 22:04:43.15ID:ZqrAOfGF あ、ずっとオープンしっぱなしならその後削除されても大丈夫ってことか。
それはそうだな。なんか危うさを感じるが。
それはそうだな。なんか危うさを感じるが。
962デフォルトの名無しさん
2018/01/30(火) 21:14:29.11ID:SNmuV+Ws ヒアドキュメントをファイルに出力する時に、
print $out <<"EOC";
ならokで、
print $out << "EOC";
だと駄目なのは何故?
print $out <<"EOC";
ならokで、
print $out << "EOC";
だと駄目なのは何故?
963デフォルトの名無しさん
2018/01/31(水) 01:11:29.08ID:ajZ2gLGd >>962
<< はビットシフト演算子でもあるので、優先順位的に
$out << "EOC" として解釈されちゃうから…?
print $out (<< "EOC"); や print << "EOC"; で通るならそうだと思う。
<< はビットシフト演算子でもあるので、優先順位的に
$out << "EOC" として解釈されちゃうから…?
print $out (<< "EOC"); や print << "EOC"; で通るならそうだと思う。
964デフォルトの名無しさん
2018/01/31(水) 01:46:30.10ID:PKL4UNme <<の直後が空白文字だと空白文字自体が識別子とみなされる
と、とある本に書いてあった
と、とある本に書いてあった
965デフォルトの名無しさん
2018/01/31(水) 03:10:45.37ID:ajZ2gLGd <<964
http://perldoc.jp/docs/perl/perlop.pod#Regexp32Quote-Like32Operators
> <<EOF
<略>
> 識別子がクォートされていない場合は、<< と識封ハ子の間に 空白を入れてはいけません。
> (もし空白を入れると、空識別子として扱われます; これは有効で、 最初の空行にマッチ
> するようになります。)
昔は
print <<;
document here.
print "foo";
みたいにできたけど、今これやると警告が出る。<<""; なら OK。
#!/usr/bin/perl -w
use strict;
sub E { print "\n6\n" }
open my $out, '>&STDOUT' or die $!;
print $out <<"";
1
print $out (<< 'E', "3\n", <<'');
2
E
4
print $out << 'E'; # Argument "E" isn't numeric in left bitshift (<<)
"5"; # Useless use of a constant ("5") in void context
E
http://perldoc.jp/docs/perl/perlop.pod#Regexp32Quote-Like32Operators
> <<EOF
<略>
> 識別子がクォートされていない場合は、<< と識封ハ子の間に 空白を入れてはいけません。
> (もし空白を入れると、空識別子として扱われます; これは有効で、 最初の空行にマッチ
> するようになります。)
昔は
print <<;
document here.
print "foo";
みたいにできたけど、今これやると警告が出る。<<""; なら OK。
#!/usr/bin/perl -w
use strict;
sub E { print "\n6\n" }
open my $out, '>&STDOUT' or die $!;
print $out <<"";
1
print $out (<< 'E', "3\n", <<'');
2
E
4
print $out << 'E'; # Argument "E" isn't numeric in left bitshift (<<)
"5"; # Useless use of a constant ("5") in void context
E
966デフォルトの名無しさん
2018/01/31(水) 09:25:45.73ID:H6iQ2Lk/967デフォルトの名無しさん
2018/01/31(水) 09:27:00.94ID:H6iQ2Lk/ あ、すまん。リロードせずに書いてしまった。既に回答書かれてたな。
968デフォルトの名無しさん
2018/01/31(水) 19:05:43.73ID:vCtk0IVE スペース空けるの禁止ならそれでいいんだけど、
ファイルハンドラが無いならスペースがあってもokなのが納得行かない
ファイルハンドラが無いならスペースがあってもokなのが納得行かない
969デフォルトの名無しさん
2018/02/01(木) 07:25:10.05ID:Msx4nr7P 気持ちは分からなくもないが、変数の場合はしょうがない。>>963 に書かれてるとおりだ。
970デフォルトの名無しさん
2018/02/01(木) 12:35:16.66ID:Msx4nr7P 誰もつっこまないが、
$out->print( << "EOC");
と書けばいいと思う。
bless されてない場合は昔は
use IO::Handle;
が必要だったが今では
perl -e 'STDOUT->print("abc")'
なんてこともできる。
個人的には、ファイルハンドルの後に , があるというアホな間違いをせずに済むというところで助かっている。
$out->print( << "EOC");
と書けばいいと思う。
bless されてない場合は昔は
use IO::Handle;
が必要だったが今では
perl -e 'STDOUT->print("abc")'
なんてこともできる。
個人的には、ファイルハンドルの後に , があるというアホな間違いをせずに済むというところで助かっている。
971デフォルトの名無しさん
2018/02/02(金) 07:43:01.24 ヒアドキュメントなんてプログラムを読みにくくする諸悪の根源
972愛知人
2018/02/02(金) 12:10:04.50 Wikipediaの12桁トリップの生成スクリプトで12桁以上のトリップキーの変換が5chの結果と合いません。どうすれば合いますか。
973デフォルトの名無しさん
2018/02/03(土) 08:12:51.87ID:hZgGNvq2 Archive::Rar を使って、中身のファイルサイズを取得するにはどうすれば
無理なら、代わりに何を使えばいい?
無理なら、代わりに何を使えばいい?
974デフォルトの名無しさん
2018/02/03(土) 09:38:14.14ID:nCUOym6+ rar コマンドをインストールしてないから CPAN でソースコードを見ただけだが、List を呼べば rar の出力をパースして list に入れてくれるみたいだよ。
試してないから勘違いしてるかもしれないけど、使ってるならソースコードの List, _AddToList 辺りを読めばいいかも。
試してないから勘違いしてるかもしれないけど、使ってるならソースコードの List, _AddToList 辺りを読めばいいかも。
975デフォルトの名無しさん
2018/02/03(土) 10:13:43.25ID:hZgGNvq2 Listはファイル名一覧しか渡してくれないんだよな
976デフォルトの名無しさん
2018/02/03(土) 10:20:52.21ID:hZgGNvq2 -alldata を指定すれば、->{size} で見えるのか
どうせやってるのは、rar.exe の出力を読んでテキスト解析してるだけなので、
似たようなことを自前でやった
どうせやってるのは、rar.exe の出力を読んでテキスト解析してるだけなので、
似たようなことを自前でやった
977デフォルトの名無しさん
2018/02/03(土) 14:48:15.33ID:nCUOym6+ マニュアルには書かれてなかったのか……まあ、信頼性の低い方法だしね。
978デフォルトの名無しさん
2018/02/04(日) 11:13:30.15ID:22FJuDW8 出力される表の形式に似せたファイル名とかにすると、多分騙されるんだろうな
979デフォルトの名無しさん
2018/02/09(金) 18:18:02.60ID:U+AwHosU >>971
KENT WEBの見にくさを見てから言ってくれ
KENT WEBの見にくさを見てから言ってくれ
980デフォルトの名無しさん
2018/02/09(金) 20:07:25.83ID:VqU2EMqO ヒヤー
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- NHK会長 新語・流行語大賞ノミネート「オールドメディア」に反論「言われる筋合いはない」「新しいメディアだと思っている」 [muffin★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 中国、アメリカ産大豆を早速過去最大の規模でお買い上げ。トランプさん「中国との関係は非常に良好である」【高市悲報】 [709039863]
- ネトウヨ首長を選んだ結果、日本に損害与える。白浜のネトウヨパンダ町長と同じ構図か!?😲 [521921834]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【ネトウヨ悲報】基地内で女性をレイプした基地外米兵「記憶がない」 [834922174]
- 山上妹「統一信者から安倍自民への投票を求められた」法廷で証言 [947332727]
