『Perl』に関する質問・疑問一覧

次へ  ]
6019件中 1~20件目
  • DreamHostでCGIを使う場合の設定について

    米国のDreamHostのVPSにあげているCGIのページなのですが 最近になって表示がおかしくなりました。 ソースは簡単な下の10行ほどなのですが・・・ 【CGIのソース】 ——————————————————————————— #!/usr/bin/perl $rand = int(rand(1000)); print "Content-type: text/html¥n¥n"; print "<html>¥n"; print "<head><title>TEST</title></head>¥n"; print "<body><center>¥n"; print "<h1>$rand</h1><a href=¥"rand_test.cgi¥">TEST</a>¥n"; print "</center></body></html>¥n"; exit; ——————————————————————————— CGIは「TEST」を押すと自信をリンクする形です。 以前は再読み込みして「 int(rand(1000))」の吐き出すランダムな数が クリックするたびに表示されました。 が、現在は同じ数が繰り返されます。 他のホスティング会社のカゴヤで試した所、 以前のDreamHostと同じようにクリックする度にランダムな数を表示します。 (http://kaitoriken.com/001.gif のGIFアニメの感じです。) サポに理由を尋ねるのですが、「キャッシュの問題」の一点張りです。 これの原因とかお分かりの方、教えていただけないでしょう?

    2020/05/14 15:33
  • perl

    net::sftp::foreignでperl上からperlスクリプトを新規作成したり編集すると、500エラーになりますが、なにが原因なんでしょうか?

    2019/10/29 12:15
  • ファイルに差異があるかの確認ができない

    普段VBを使用しており、Perlはほぼ初心者 (十年前に教科書読んでちょっと作成した程度)です。 何千ものファイルを処理する必要があるため Perlを使用することになったのですが、 「File::Compare」のcompareを使用したファイルの比較が うまくいきません。Text::Diffを使用した比較はうまくいくため 何がいけないのかわからず困っております。 前提として、Perl Strawberryを使用しています。 use File::Compare; my $file1 = "test3.txt"; my $file2 = "test4.txt"; my $cmpr = 0; $cmpr = compare ("test3.txt", "test4.txt"); if ($cmpr == 0){   print "ファイルの内容が異なります"; } と、これだけなのですがうまく動作しません。 ファイルの中身が異なっていることは確認済みです。 また全く同じファイルを使用して print OUT diff "test3.txt", "test4.txt", {STYLE => "Context"}; とすると問題なく動作します。 できればファイルの中身が異なることを確認してから diffを実行したいためcompareも使おうとしています。 詳しい方には非常に簡単な問題なのだと思いますが、 お手上げ状態のためお力を貸していただけると幸いです。 よろしくお願いいたします。

    2019/09/20 16:35
  • perlでcsvファイルから複数行を抽出したい

    プログラミング初心者です。 お知恵をお貸しください。 perlでcsvファイルから任意の複数行を、コマンドライン引数を使って抜き出したいです。 1行だけだとうまくいきますが、以下ではすべてのcsvデータが出力されてしまいます。 ----------------------getcsv.pl ここから---------------------- #!/usr/bin/perl -- use strict; use warnings; open(IN, "<adata.csv"); open (OUT, ">$bdata.csv"); while(<IN>){ if($. == $ARGV[0] || $ARGV[1] || $ARGV[2] || $ARGV[3]) { print OUT $_; } } close(IN); close (OUT); ----------------------getcsv.pl ここまで---------------------- ----------------------コマンド ここから---------------------- perl getcsv.pl 1 3 8 10 ----------------------コマンド ここまで---------------------- よろしくお願いします。

    2019/09/17 02:08
  • NET::SFTP::FOREIGNについて

    NET……FOREIGNを使って、ファイルのパーミッション(アクセス権)を変えようと試みましたが、変えられませんでした。 いや、変更は可能なのですが、意図したパーミッションになりません。 例えば、0755とすると、0363となります。 Perlのフォームデータから755と送られてきたときに正常に変更させるにはどうしたらいいですか? ちなみに、直接数値でなら正常に変更できます。 簡略しますが…… <input type="text" name="chmod" value="任意の数値"> このデータを受け渡し…… sftp->chmod("ファイル名", $FORM{'chmod'}); とすると、例えば任意の数値が0755だと、0363となり、うまく変更できません。 なにが原因かわかる方いらっしゃいますかね?

    2019/09/09 16:28
  • NET::SFTP::FOREIGN

    perlモジュールのnet::sftp::foreignについてですが、$sftp->chmodと打っても、サーバ上のファイルのパーミッションを変えることができません。 $sftp->にchmodのコマンドは使えないのですか? また、パーミッションを変えるコマンドが他にある場合、それも教えて下さい。

    2019/08/30 20:47
  • 日本語ドメインか16進数かで別物になる

    サーチコンソールに下記のように出てしまいます。 参照元ページ https://www.就~.tokyo/html/link.html ユーザーが指定した正規 URL https://xn~.tokyo/html/link.html 日本語ドメインなので、日本語のドメイン名と、16進数のドメイン名が別物として認識されているようです。 もちろん、ドメイン名は全く同じで違いは16進数かそうでないかだけです。 参照元ページ https://www.就~.tokyo/html/link.html ユーザーが指定した正規 URL https://xn~.tokyo/html/link.html この場合もリダイレクトなのですか? もちろん https://xn~.tokyo/html/link.html でアクセスしてもちゃんと同じページが出てきます。 なぜ同じなのに日本語ドメインか16進数かで別物と検索エンジンは思ってしまったのでしょうか? どうすれば同じに出来ますか?

    2019/07/09 14:42
  • JSON Perlで指定のデータのみ抽出

    恐れ入ります。 {"num":29,"name","山田太郎"}{"num":30,"name","山田花子"}{"num":31,"name","山田次郎"} というJSONデータを読み込むことは出来たのですが、 この中からnumを、例えば29と指定したら、 {"num":29,"name","山田太郎"}のみが表示される形にしたいのですが、方法が分かりません。 宜しくお願い致します。

    2019/06/29 09:48
  • Perl ローカル運用 exe起動

    恐れ入ります。現在anhttpdでperlプログラムをローカルマシン(windows10)で作成しているのですが、perl実行時に、ローカルのコマンドを実行したいのですが、どのようにしたら良いか分かりません。 具体的には、bitsadmin.exeを使ってグローバル上の特定のファイルをローカルフォルダにダウンロードするイメージです。 以上宜しくお願い致します。

    2019/06/28 12:20
  • セキュリティ解除

    基板を改造して設定されてるセキュリティを解除することってできますか?

    2019/03/17 14:15
  • Perl cookie 削除か書込

    Perl cookie cookie→NAMEというクッキーデータを 削除か、まったく別のものに書き換えたいのですが、どうすればいいのでしょうか? 現在はJavaScriptで書き込んでいるのですが、 <script> \$(function(){ \$('#NAME).val(\$.cookie("NAME")); \$("#Login").click(function(){ \$.cookie("NAME",\$('#NAME).attr('value'), { expires: 365 }); location.href="$MYURL" }) }) </script> Perl ソース中で、PerlでこのNAMEを消したい 瞬間があります。 もしくは、書き換えたいです。 やりかたを教えて下さい。 調べてはいるものの うまくいきません。

    2019/02/08 14:44
  • Perl の use strict に付いて

    ●HTML <html><head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <title>テスト5(UTF-8)</title> </head> <body> <form action="test5.cgi" method="post" > <input type="text" name="f1" value="" size="80"> <button type="submit" >送信</button> </form> </body></html> —————————————————————————————————————— ●Perl #!/usr/bin/perl #use strict; ※問題の行1 use warnings; use CGI; print "Content-type: text/html\n\n"; print "<meta charset=\"UTF-8\">\n"; # POST / GET パラメータを取得------------------------- my $q = new CGI; # パラメータ名を指定して取得する my $param1 = $q->param('name1'); my $param2 = $q->param('name2'); # FORM値の取得----------------------------------- # 全てのパラメータを取得する for my $param_name ($q->param) { print $param_name . ' = ' . $q->param($param_name) ; print "<br>\n"; ${$param_name} = $q->param($param_name); ※問題の行2 } #------------------------------------------------- print "テスト<hr>\n"; print "$f1<br>\n"; exit; —————————————————————————————————————— 【質問】 「※問題の行1」+「※問題の行2」 = エラー 「※問題の行1」のみ = 正常に動きます 「※問題の行2」のみ = 正常に動きます 「※問題の行1」の「use strict; 」と 「※問題の行2」の「${$param_name} = $q->param($param_name); 」 をどう書き換えれば、二つとも記述したまま正常に動くのでしょうか? よろしくお願いします。

    2019/02/04 11:38
  • perl print文で日本語表示するには

    perlのプログラムで use utf8が宣言されていない時(test1.pl)は、 print文で日本語が正しく表示されるのですが、 use utf8が宣言されている時(test2.pl)は、 print文で日本語が正しく表示されないかエラーになります。 encode('utf-8', $string)やencode('cp932', $string) も試してみましたがうまくいきませんでした。 どのようにすればよいでしょうか。 ---test1.pl------------------------------------------------ #!C:/perl/bin/perl use strict; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1; my $string="$year年$mon月$mday日 $hour時$min分$sec秒\n"; print $string; ----------------------------------------------------------- 実行結果 OK 2018年12月26日 9時36分6秒 ----------------------------------------------------------- ---test2.pl------------------------------------------------ #!C:/perl/bin/perl use strict; use utf8; use Encode; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1; my $string="$year年$mon月$mday日 $hour時$min分$sec秒\n"; print $string; #print encode('utf-8', $string); #print encode('cp932', $string); --------------------------------------------------- 実行結果 NG (PC1 Windows7 ActivePerl) Wide character in print at D:\test\test2.pl line 11. Global symbol "$year年" requires explicit package name (did you forget to declare "my $year年"?) at D:\test\test2.pl line 8. Global symbol "$mon月" requires explicit package name (did you forget to declare "my $mon月"?) at D:\test\test2.pl line 8. Global symbol "$mday日" requires explicit package name (did you forget to declare "my $mday日"?) at D:\test\test2.pl line 8. Global symbol "$hour時" requires explicit package name (did you forget to declare "my $hour時"?) at D:\test\test2.pl line 8. Global symbol "$min分" requires explicit package name (did you forget to declare "my $min分"?) at D:\test\test2.pl line 8. Global symbol "$sec秒" requires explicit package name (did you forget to declare "my $sec秒"?) at D:\test\test2.pl line 8. Execution of D:\test\test2.pl aborted due to compilation errors. ----------------------------------------------------- 実行結果 NG (PC2 Windows7 ActivePerl) Malformed UTF-8 character (unexpected continuation byte 0x94, with no precedingstart byte) at C:\test\test2.pl line 8. (略) Malformed UTF-8 character (unexpected continuation byte 0x95, with no precedingstart byte) at C:\test\test2.pl line 8. 2018 N12 26 9 5 4 b ----------------------------------------------------- 期待している実行結果 2018年12月26日 9時36分6秒 ----------------------------------------------------- よろしくお願いします。

    2018/12/26 10:18
  • Perl 文字の中にある複数ワードを1つにしたい

    教えてほしいです。 $text = "1テストp41p2Ap2、テストp22、p4テストp2testp4w"; @M = ("p4","p2"); 上記の2つの変数から 下記のようにする方法はありますでしょうか? $text = "1テストp41p2A、テストp22、p4テストtestw"; ※消したいワード [p4][p2]が複数ある場合 配列内の文字が複数ある場合、最初の一致だけを残しあと消す。 ※[p41][p22]などの2桁の数値は消さない

    2018/11/28 14:11
  • CGIで受け取った日本語文字列を正規表現で

    perlでcgiを作っています。 テキストボックスに入れてもらった文字列から正規表現で数字を抽出します。 以下のように、組むと "USA"のような半角英数はただしくマッチしますが、 "アメリカ"や"ドル"などはマッチしません。簡単に解決する方法をお教えください。 my $text = $in_data{'data_text'}; $text =~ tr/+/ /; $text =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; $text =~ s/[<>"'&\r\n]//g; $text =~ s/&/&amp;/g; $text =~ s/</&lt;/g; $text =~ s/>/&gt;/g; $text =~ s/"/&quot;/g; $text =~ s/'/'/g; $text =~ s/\r\n/<br>/g; $text =~ s/\n/<br>/g; $text =~ s/\r/<br>/g; if ($text =~ /USA (\d+) dollars/){ print "USA $1\n"; } if ($text =~ /アメリカ (\d+\.\d+) ドル/){ print "アメリカ $1\n"; } exit;

    2018/11/20 07:53
  • Perl 先頭行に追加

    恐れ入ります。 Perlで、配列がカンマで区切られたデータを読み込み、 その先頭行にデータを挿入したいのですが、 中々うまくいきません。 データ(/data/xxx.txt)の中身は、 test,test2 bbb,bbb2 ccc,ccc2 という感じで、カンマで区切られて改行で並んでいます。 そこに新たに$dateと$contで受けたデータを先頭行に追加する感じです。 open(FILE,"<./data/xxx.txt"); while($temp = <FILE>){ @temp=split(/,/,$temp); push(@ddr,"$temp[0]","$temp[1]"); } seek(@ddr,0,0); unshift(@ddr,($date,$cont."\n")); open(FILE,">./data/xxx.txt"); $new=join(",",@ddr); print FILE $new; close(FILE); このように書いていますが、 print FILE @ddr とすると、配列が壊れた状態(全て繋がる)で先頭行には挿入されたのですが、カンマで区切って配列にして並べようとしたら、 test,test2 ,bbb,bbb2, ,,ccc,ccc2,, という感じで上手く並びません。 よろしくおねがいします。

    2018/11/08 13:37
  • [Perl]XML::SimpleでSJIS

    Windows7、ActivePerl v5.24.1を使っています。 use XML::Simple; use Data::Dumper; my $data = XMLin('test.xml'); print Dumper($data); というコードで、以下のXMLファイルを読み込むと、 <?xml version="1.0" encoding="shift_jis"?> <root> <top id="1234"> <second>値</second> <third> <fourth>1234</fourth> <fifth>myvalue</fifth> </third> </top> </root> Couldn't open encmap shift_jis.enc: No such file or directory at C:/Perl/lib/XML/Parser.pm line 187. XML::Simple called at read_xml_test.pl line 10. というエラーがでます。 ググると、以下のサイトで解決できたという記事がヒットしますが このサイトはもう存在しません。 Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm なにかコード間のマップファイルと思われますが、 どなたかお持ちじゃないでしょうか?

    2018/09/19 12:52
  • Perl 高速でファイルを結合させたい

    ある集計データを作成しているのですが、 とにかく遅いです。 下記のソースで、繰り返しファイルをオープンさせ 結合を繰り返しているからでしょうが これを早くするにはどうすればいでしょうか? ※やりたいことは実際はできております。 まず条件として ディレクトリのデータは数年分あり 今回は、4年分の統計を取りたい。 →2018年度、2017年度、2016年度、2015年度 ディレクトリのファイルの数、ファイルの名前は一緒(例は数字ですが、基本名前です) →ファイルの数は15個 →ファイル容量 大きいので1500kbの約2万行 少ないので600kbほど 合計ファイル容量1年分→1mbほど 4年分になると4mb(単純計算) 平均ファイル容量750kbほど my @DATAFILE; my @FILENAME = ("T1","T2","T3","T4","T5","T6","T7","T8","T9","T10","T11","T12","T13","T14","T15"); my $Year = 2018; my $YearM = $Year - 3; for(my $i=0;$i<=$#FILENAME;$i++){ my $FILE = $FILENAME[$i]; chomp($FILE); for(my $pr=$YearM;$pr<=$Year;$pr++){ open(FILE, "<","data/log/$pr/$FILE.txt"); eval{ flock(FILE, 1) }; my @DATASUM = <FILE>; close FILE; push @DATA,@DATASUM; } } どうか改善方法を教えください。

    2018/08/03 14:51
  • perl utf8ファイル処理について

    ファイルがutf8で作成されています。 open処理にて、utf8をshifjisに変換して処理する事って出来ますか。 今の所は、utf8のファイルを入力して、shiftjisに変換して、outputして、 それを読み込んで処理してます。 やはりこれ以外の方法はないでしょうか。

    2018/05/25 06:19
  • WindowsでのPerl開発環境

    Windows7/10上のPerlでのwebアプリに関するベストな開発環境を知りたいです。 実行環境イメージは、50画面相当ある中大規模webアプリで、windows server + apache + oracle使用です。 当方、JSF(primefaces)によるweb開発は経験がありますが、Perlは初めてです。 Perlについて、webで検索、模索していて少し不安になってきたので、下記質問に回答ください。 1)Perlの現況  web検索すると、古い記述ばかり目につき、PHPなどに比べると、言語自体が衰退している様な気がしますが、そんなことはないでしょうか?現時点でこの規模のアプリ開発言語にPerlを選択する事に疑問を感じています。 2)開発環境  少し調査した段階ですが、Eclipse(EPIC)がいいのかなと思ってます。もちろん、これに限らず、これがベスト!というのがあれば教えてください。 3)その他開発環境  MVCパターンで実装したいので、更にCatalyst or Mojoliciousを導入すべきなのかな?と思っています。使い勝手などいろいろな側面からベストなものを教えてください。  更に、リッチコントロール(たとえば、グリッドコントロールの様な)が簡単に扱えるようなライブラリ?みたいなお勧めがあれば教えてください。 4)Perl素人への注意事項  Perlでのweb開発時の注意事項などありましたら、教えてください。 5)PerlとJSF  双方経験がある方のみにお聞きします。 当方はNetBeans(Eclipseではなく)でJSFのwebアプリ開発時にストレスなく作業が行えた記憶があります。Perlだとこういうところが優れている、劣っているなど、意見を聞きたいです。特に双方同レベルのスキルがある人が同じアプリを作るとした場合、開発工数に違いがあるか否か(理由も)が知りたいです。

    2018/05/17 13:54

ピックアップ