StrawberryPerlのCPANを実行するとエラーが出る

投稿者: Anonymous Windows10 64ビット環境にStrawberryPerlをインストールしました。 この状態で、コマンドプロンプトを起動して、cpanコマンドを実行しようとしているんですが、下記のエラーが表示され、実行できません。 何か解決方法はありますでしょうか。以上、よろしくお願いいたします。 Can’t locate CPAN/Author.pm in @INC (you may need to install the CPAN::Author module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /usr/share/perl5/core_perl/CPAN.pm line 19. BEGIN failed–compilation aborted at /usr/share/perl5/core_perl/CPAN.pm line 19. Compilation failed in require at /usr/share/perl5/core_perl/App/Cpan.pm line 288. BEGIN failed–compilation aborted at /usr/share/perl5/core_perl/App/Cpan.pm line 288. Compilation failed…(Continue Reading)

:methodの意味

投稿者: Anonymous Perlのモジュールを読んでいたら以下の関数定義がありました。 sub connect :method { } この、:methodっていうのはどんな意味があるのか、ご存知の方がいたらご教示願いたいです。 解決 サブルーチン属性と言われるモノです。 一般にはユーザが適当につけて利用することができますが、 :methodは組み込みの属性で、 参照された関数はメソッドであると 提示します 回答者: Anonymous

perlでファイルの指定文字列を取り出し、変数へ格納

投稿者: Anonymous あるファイル(仮にsample.txt)の一行目には三つの数字があります。数字と数字の間に半角スペースが入ってます。三つの数字を正規表現で取り出し、それぞれ変数A、B、Cに格納する方法はありますか 20 31 7 abcdefg あいうえお …    自分はこのように考えています。うまくいかなかったです。 print”ファイル名を指定してください!”; chomp(my $file = <STDIN>); open (IN, $file) or die; my $para = qr/(d+)s(d+)s(d+)/x; if (<IN>=~ /$para/) { my $A = $1; my $B = $2; my $C = $3; } 解決 質問の通り「正規表現」を使うなら以下のように自分なら書きますが、今回の場合なら「半角スペース区切り」でsplitする方法もあります。 #!/usr/bin/perl my $file = “sample.txt”; open(FH,”<$file”) or die; my $line =…(Continue Reading)

Expresión regular que busca una letra dentro de una palabra una única vez y no se repita

publicado por: Anonymous Necesito una expresión regular en Perl que me permita validar palabras que tengan en su contenido una sola letra a. Estoy utilizando la siguiente expresión regular: ^(?=.*?a{1}).*$ Esto permite buscar cualquier letra a en una palabra pero no logro controlar que permita sólo una vez. El funcionamiento de la expresión regular debe…(Continue Reading)

Perlで euc-jp “xE7” does not map to Unicode というエラーが出る

投稿者: Anonymous Perlのプログラムを実行すると以下のエラー内容がでて困っております。 自分自身、Perlを使うのがはじめてで、非常にざっくりした質問内容になってしまいますが、 ヒントなどをご教示いただけると助かります。 プログラムの内容は以下のページからダウンロードできます。 京都大学テキストコーパス Version.4.0 エラーメッセージ euc-jp “xE7” does not map to Unicode at ./src/format.pl line 91. euc-jp “x84” does not map to Unicode at ./src/format.pl line 91. euc-jp “xA1” does not map to Unicode at ./src/format.pl line 91. euc-jp “xBD” does not map to Unicode at ./src/format.pl line 91. euc-jp “x99”…(Continue Reading)

apacheのmod_perl2で、リクエスト間で共通の値を保持しておきたい

投稿者: Anonymous apacheでmod_perl2を使用して、リクエストのアクセス制御を行うことを考えています。 以下のように PerlAccessHandler で、サーバローカルのファイルを読み込み、その情報を 元にユーザアクセスの制御したいと思います。 === httpd.conf === <Location /> PerlAccessHandler Hoge::Foo ←ここで処理 Allow from all </Location> ただ、リクエストを受ける毎にファイル読み込みを行っていては負荷がかかると思いますので、 一度読み込んだ内容はメモリに保持しておき、ファイル読み込みは100リクエストに一回とする など、読み込み回数を抑えたいと考えています。 しかし、現状ではリクエストを受けるたびに初期化されてしまうようで、メモリに保持する ことができていません。 何かリクエスト間で共通して値を保持しておけるよい方法はないでしょうか? 解決 共有メモリを使ったプロセス間通信をすると良さそうです。 Perlだとこんなの↓があったので試してみてはいかがでしょう。 http://search.cpan.org/~andya/IPC-ShareLite-0.17/lib/IPC/ShareLite.pm 回答者: Anonymous

perlで二次元配列の書き方について

投稿者: Anonymous .#.#…. .#.#…. …….. …..#.# …….# ……#. …….. …….# …….. …….. このような10行*8列計80個セルの入力データ(仮にsample.txt)があります。 perlでこのsample.txtからデータを読み込んで、一行一列ずつ二次元配列に代入したいです。 つまり@hairetu[i][j]の形で任意位置の要素を抽出することができるようにしたいです。 例: @hairetu[1][1]は”#”が表示 @hairetu[3][2]は”.”が表示 自分のコードは一行目は1つの要素として認識されてしまったので、うまくいかなかったです。 コードは以下となります。どういう風に書けばいいのか、プロな方教えて頂ければ幸いです。 #!/usr/bin/perl my @hairetu; my $i = 0; my $file = ‘sample.txt’; open (IN, $file) or die “$!”; while (my $ = <IN>) { chomp($data); $hairetu[$i] = $data; $i = $i + 1 } $length =…(Continue Reading)

16進数のテーブル表

投稿者: Anonymous 10進を16進数に変換した一覧表をテキストファイルに出力して作成したいです。 できれば、項目もつけて。 下記の九九表みたいな感じに。 for (my $i = 1; $i <= 9; $i++ ) { for (my $o = 1; $o <= 9; $o++) { my $a = $i * $o; printf(“%2d “, $a); } print “n”; } 現在下記まで書いたのですが、 読み込みが遅いうえ、コンソールに表が表示されません(たぶん数列の羅列になってます)。 for ( my $num10 = 0 ; $num10 <= 1023 ; $num10++ ) {…(Continue Reading)

Perl のハッシュで、key ではなく value でのスライシングを1行で書けますか?

投稿者: Anonymous python, ruby ではハッシュの要素でのスライスが1行でできますが、perl ではどうやるのでしょうか? 「perl hash slice」 で検索しても、hash のキーでスライスする方法しか見つかりませんでした。 やりたいのは下記のようなことです。 ruby [6] pry(main)> hash = (0..3).map { |x| [x, x*2] }.to_h => {0=>0, 1=>2, 2=>4, 3=>6} [7] pry(main)> hash.select { |k, v| v > 2 } => {2=>4, 3=>6} python In [26]: hash = { x:x*2 for x in range(4) } In [27]:…(Continue Reading)

null文字判定と置き換え

投稿者: Anonymous 読み込んだCSVファイルから、nullをスペースに置き換えて出力したいです。 nullは,,のところです。 1レコード17項目です。 読み込みファイル 01,,01,4カナ-0001,5漢字-0001,6,7年月-0001,8日付-0001,9-0001,10ー0001,11ー0001,12ー0001,3,4,15ー0001,6,17000001 02,0002,,4カナ-0002,5漢字-0002,6,7年月-0002,8日付-0002,9-0002e,10ー0002,11ー0002,12ー0002,3,4,15ー0002,6,17000002 出力 *△は半角スペース 01,△△△△,01,4カナ-0001,5漢字-0001,6,7年月-0001,8日付-0001,9-0001,10ー0001,11ー0001,12ー0001,3,4,15ー0001,6,17000001 02,0002,△△,4カナ-0002,5漢字-0002,6,7年月-0002,8日付-0002,9内容-0002,10ー0002,11ー0002,12ー0002,3,4,15ー0002,6,17000002 open IN2, “<:encoding(utf8)”, “$input_FILE” or die; open OUT2, “>:encoding(utf8)”, “$output_FILE” or die; while ( my $line2 = <IN2>) { # 改行を削除 chomp $line2; # レコード前後の””を外す $line2 =~ s/^”//; $line2 =~ s/”$//; # 1レコード項目ごとに分割 my @data2 = split(/,/, $line2); # レコードにnullが含まれている? if ( $line2…(Continue Reading)

cgi-binのサブディレクトリのcgiが動作しない

投稿者: Anonymous Perl の CGI です。 cgi-bin/hello.cgi だと動作するのですが、サブディレクトリを置いて cgi-bin/folder/hello.cgi という感じにすると Forbidden You don’t have permission to access /cgi-bin/0_search/hello.cgi on this server. と表示されて動作がしません。 folder と cgi のパーミッションは 755 です。 hello.cgi の中身 #!/usr/bin/perl print “Content-type: text/html nn”; print “Hello”; Apache のバージョン確認 [[email protected] 0_search]$ httpd -v Server version: Apache/2.4.6 (CentOS) Server built: May 12 2016 10:27:23 [[email protected] 0_search]$…(Continue Reading)

PerlのCGIモジュールでHTMLからのパラメーター渡しを行いたい

投稿者: Anonymous PerlのCGIモジュールでHTMLフォームの表示を行おうとしております。 下記の引用部分でどのようにparamを使ったらよいのでしょうか? 質問の意味も通じるのか不安なのですが、ご教示いただけると助かります。よろしくお願い致します。 Windows 7 Professional SP1 64ビット Apache 2.4.29(Win64) Perl v5.24.3 Google Chrome バージョン: 63.0.3239.132(Official Build) (64 ビット) HTML側 <html>  <head> <title>Form Sample</title>  </head> <body> <h1>Web Page</h1></body> <form action=”/cgi/01input.cgi” method=”POST” > Value 1:<input name=”v1″ type=”text” value=””><br> Value 2:<input name=”v2″ type=”text” value=””> <input type=”submit” value=”送信”> </form> </body> </html> Perl側 use strict; use warnings;…(Continue Reading)

Try::Tinyモジュールの実装方法

投稿者: Anonymous perlで例外処理をするモジュールとしてTry::Tinyがあります。 使うときは以下のように定義しますが、これが文法的にどうやって実装されているか確かめたくてモジュールを読んでみましたが、分かりませんでした。 Javaと同じような文法ですが、perlにはtry構文は用意されていません。 Try::Tinyがどうやってこの文法を実装しているの知りたいです。 perldoc Try::Tiny try { die_sometimes(); } catch { # …code run in case of error } finally { if (@_) { print “The try block died with: @_n”; } else { print “The try block ran without error.n”; } }; 以下、モジュールを使わず定義だけしてみて、B::Deparseで構文解析して内部でどう処理されているか確認しましたが、解析結果を見てもよく分かりませんでした。 perl -v: 5.16.2 osx: 10.9.5 $cat ./h.pl #!/usr/bin/perl…(Continue Reading)

10進数255までを2進数に変換し、新規作成したテキストファイルに書き込む

投稿者: Anonymous 255までの10進数を2進数に変換する命令は分かりましたが、open関数でテキストファイルに書き込むことができません。 繰り返し文の二重化を避けるため、foreach文をサブルーチンにして、テキストファイルを作成するときは、サブルーチンから参照するようにしました。 結果、参照は可能ですが、テキストファイルには何も反映されませんでした。 sub math { foreach my $c ( 0..255 ) { my $str3 = sprintf(‘%b’, $c); print $c , ‘ -> ‘ , $str3 , “n”; } } my @line = &math; open (OUT, “>>index.txt”) or die “cannot open texfile : $!n”; foreach (@line) { print OUT @line; } close(OUT); 解決…(Continue Reading)

perlのsql結果について

投稿者: Anonymous こんにちは、perlのresult結果が定数に入るということがこの前わかりました。 perlファイルコード $sql = “select ・・・;”; # <- SQL文 $ret = $conn->exec($sql); $ret->resultStatus でこの値に – PGRES_EMPTY_QUERY – PGRES_COMMAND_OK – PGRES_TUPLES_OK – PGRES_COPY_OUT – PGRES_COPY_IN – PGRES_BAD_RESPONSE – PGRES_NONFATAL_ERROR – PGRES_FATAL_ERROR が入るようですが、この定数の代わりに数値でも大丈夫なんでしょうか? 直接printして確認出来ました。 ・・・上から0・・・7でした。 解決 定数を利用せずに、直接数値を指定して結果判定をしていいかということでしょうか? まず、動作するかどうかについてですが、定数を利用せずに直接数値で判定を行っても正しく動作すると思います。 しかし、よほど特別な理由がない限り避けた方がよいです。 プログラムに直接固定の数値を書くことを「マジックナンバー」と呼びます。 このマジックナンバーを多用すると「可読性低下」「保守性低下」などのデメリットが非常に多いです。 例えば、簡単な例ですが、次の2つのプログラムを見てください。 前者がマジックナンバーを使ったもの、後者が定数を使用したものです。 ・プログラムA: $result = func(); if($result != 1) { return; } ・プログラムB: $result…(Continue Reading)

miで編集したスクリプトを実行しても何も起きず、lessで表示すると改行がおかしくなっている

投稿者: Anonymous Mac OS XでPerlの(というか初めてのプログラミングの)勉強を始めました。 スクリプトファイルを作るのには、miというテキストエディタを使っていますが、なぜか実行できるものとできないものがあります。実行できないものは、ターミナルで文法チェックにかけています。 % perl -cw broken.pl % broken.pl syntax OK 「ハローワールド」と表示するだけの単純なスクリプトなのですが、なにも起こらず次の行ができます。 % perl broken.pl % [] <-これはカーソル 覚えていないだけで実行できるファイルと違った作り方をしているのだと思いますが、Perlのスクリプトファイルを作るときに気をつけるべき点を教えてください。 最終的には、別のテキストファイルを変更することを目指して勉強しているのですが、操作対象のファイルでも形式上の制約があるのでしょうか? 編集 コメントにお応えしてcatの結果を引用します。 bash-3.2$ cat broken.pl print “$embedded 表示されたら合格。n”; エディタで入力したスクリプト(以下の画像)の一部に過ぎません。 そこで確実に全部の内容を見るためにcatにつづけて | lessを使いました。一部文字化けではないかとおもわれるところがあるので画像で示します。 Perlのバージョンは bash-3.2$ perl -v |grep This This is perl, v5.10.0 built for darwin-thread-multi-2level です。初めに調べるべきでした。多分古すぎるのでしょうか。 解決 (mztnsさんの回答と同じですが補足として一応) スクリプトに含まれている文字^Mからおそらく、Perlから見ると改行を正しく判断できずに一行だけのファイルだと解釈してしまい、さらに先頭に #!/usr/bin/perl があることでスクリプト本体がコメント行扱いされて、結果的に何も出力されなかったようです。 miエディタの改行コードがCR(Mac)になっていることが原因かと思います。…(Continue Reading)

perlのハッシュで重複するキーの削除と足し合わせ

投稿者: Anonymous 2つのファイルをハッシュに格納して重複するキーを作成してからマージしたいのですが、出力ファイルのようにデリファレンスできていないデータが表示されます。どうすれば、ファイルにデータが正常通り出力されますか? 出力したい内容:キーを1項目目として、重複するキーを削除して2項目、3項目目を足し合わせます。 4項目目は最新の月を表示したいです。5項目目はそのまま出力します。 ・入力ファイル01 きゅうり,7800,40,20150629,a 牛乳,10000,24,20150629,b 水,5000,48,2015029,b にんじん,6500,30,20150629,a きゅうり,4800,20,20150628,a ・入力ファイル02 きゅうり,7800,40,20150630,a にんじん,6500,30,20150630,a 牛乳,5000,12,20150630,b 水,2500,24,20150630,b 水,2500,24,20150627,b にんじん,3500,15,20150630,a ・出力ファイル01 きゅうりARRAY(0x204bbf0) 牛乳ARRAY(0x204bd70)きゅうりARRAY(0x204bbf0) 水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)きゅうりARRAY(0x204bbf0) 水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)にんじんARRAY(0x55a1a8)きゅうりARRAY(0x204bbf0) 水ARRAY(0x204bfc8)牛乳ARRAY(0x204bd70)にんじんARRAY(0x55a1a8)きゅうりARRAY(0x204be90) ・出力ファイル02 きゅうりARRAY(0x204bed8) にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8) 牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8) 水ARRAY(0x561dc0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8) 水ARRAY(0x204bcb0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561e08)きゅうりARRAY(0x204bed8) 水ARRAY(0x204bcb0)牛乳ARRAY(0x482d28)にんじんARRAY(0x561dc0)きゅうりARRAY(0x204bed8) use strict; use warnings; # 処理開始 my $input_FILE = “sales.txt”; my $input_FILE_2 = “sales_2.txt”; my $output_FILE = $input_FILE.”.cyoufuku”; my $output_FILE_2 = $input_FILE_2.”.cyoufuku”; cyofuku_CHAECK($input_FILE, $output_FILE);…(Continue Reading)

Perlを用いて複数のファイルにそれぞれ違う内容を書き込む方法について

投稿者: Anonymous 複数のファイルに違う内容を書き込む Perlを使って複数ファイルにそれぞれ違う内容を書き込みたいです。 具体的には、コマンドライン入力した$start_no=2、入力ファイルの行数が 3 とすると tmp1.txtに 2 3 4 5 tmp2.txtに 6 7 8 9 …. と書き込みたいです。 以下のコードでは、指定した出力ファイルtmp1~4.txt自体はつくられますが、中にはなにも書き込まれません。 余分と判断した部分は削除しているため、入力ファイル内の値はここでは何も使われていません。 my $infile=$ARGV[0]; my $start_no=$ARGV[1]; open (my $infh,'<‘,$infile); my $i=0; my $j; for ($j=1;$j<5;$j++){ my $outfile1=”tmp1.txt”; my $outfile2=”tmp2.txt”; my $outfile3=”tmp3.txt”; my $outfile4=”tmp4.txt”; open (my $outfl1,’>’,$outfile1); open (my $outfl2,’>’,$outfile2); open (my $outfl3,’>’,$outfile3); open (my $outfl4,’>’,$outfile4); while ( my…(Continue Reading)

配列内のリストを効率よく走査するには

投稿者: Anonymous Perlで下記のような構造を持つ配列があります。 @array = ({ id => ‘1’, key => ‘a’ }, { id => ‘2’, key => ‘b’ }, { id => ‘4’, key => ‘c’, }) ここで、@arrayにid=4が存在するかどうかを調べる際、例えば foreach my $x (@array){ if($x->{id} == 4) … } 等として調べることが可能ですが、これでは処理回数が線形的に増え、効率的とは言えません。 何かピンポイントでid=4を調べる良い方法は無いでしょうか。 教えてください。よろしくお願いします。 解決 id から対応する配列の要素に対して効率的にアクセスしたいという質問だと思います。この場合、次のようなアプローチが考えられます。 事前に id をキー、インデックスを値とするハッシュを作成しておき、それを利用する。(検索コストは O(1)、メモリを食う) @array の中身を id の順に並べ替えておき、二分検索を行う (検索コストは O(log_2…(Continue Reading)

ドラッグ&ドロップで複数ファイルをアップロードするには?

投稿者: Anonymous ドラッグ&ドロップされたファイルをサーバにアップロードするには? の続きです。 ご回答を得まして、ドラッグ&ドロップでファイルをアップロードすることはできました。 ただ、複数ファイルのアップロード方法が分かりません。 my $q = new CGI; my @fps = $q->upload(‘file’); my @fnames = $q->param(‘file’); my $idx = 0; foreach my $fname(@fnames){ $fname = basename($fname); copy($fps[$idx], "./test/$fname"); $idx++; } とか書いてみたのですが、一つしかアップロードされず。 なお、前提条件として、<input type = "file" multiple />を使って、ファイルダイアログで選択した複数ファイルのアップロードはできています。 解決 e.dataTransfer.files は配列なので。 function onDrop(e) { e.stopPropagation(); e.preventDefault(); var files = e.dataTransfer.files; for(var i= 0;i…(Continue Reading)

perlにて、2つの要素からなる配列のリファレンスの配列から、0番目の要素の値が最大の1番目の要素を取得したい。

投稿者: Anonymous 例えば([1,’A’],[2,’B’],…..,[10,’X’])のとき、’X’を取り出すには、どうしたらいいでしょうか? forループでごりごりやればできますが、map、grep、maxのような関数を使ってエレガントに記述したいのですが。 解決 Non-COREなCPANモジュールを使えるのなら List::UtilsBy のmax_byがそのものずばりです。 #!/usr/bin/perl use strict; use warnings; use List::UtilsBy qw(max_by); my @arr = ( [1, ‘A’], [2, ‘B’], [3, ‘C’], [4, ‘D’], [5, ‘E’], [10, ‘X’], ); my $max = max_by { $_->[0] } @arr; print $max->[1]; List::UtilsByの利点はmaxとなる要素が複数ある場合にも対応できることです。 my @arr = ( [1, ‘A’], [2, ‘B’], [3, ‘C’], [4,…(Continue Reading)

古いCGIに残る`open(FH, ‘| sendmail -t -oi’)`をテストしたい

投稿者: Anonymous openがまだ2引数でベアワードを織り交ぜていた頃のメール送信プログラムがあります。 このメールのメッセージをテストするスクリプトを書こうとしています。 一部だけ抜粋するとこのような感じになります: require ‘jcode.pl’; require ‘mimew.pl’; open(FH, ‘| sendmail -t -oi’); print FH &mimeencode(“From: $from”) . “n”; print FH &mimeencode(“To: $to”) . “n”; print FH qq{Content-Type: text/plain; charset=”iso-2022-jp”n}; print FH &mimeencode(“Subject: $subject”) . “n”; print FH “n”; foreach $line (@lines) { print FH &jcode::jis($line, ‘sjis’) . “n”; } close(FH); とりあえずざっくりと、テストスクリプトが対象のコードを舐めた時に実際にメールを送ってしまわないように、openにsendmailらしきコマンドが渡されたら黙って1を返すよう以下のようなコードをテストに含めました。 しかし、そこから一歩進んでファイルハンドルに書き込まれた内容を評価する方法が分かりません。 BEGIN…(Continue Reading)

Perl の @list と [@list] には、どんな違いがありますか?

投稿者: Anonymous Perl のリストをリファレンスにするときには、を使うと思います。 125> my @list = (1..3); $res[75] = [ 1, 2, 3 ] 126> my $x = @list; $res[76] = [ 1, 2, 3 ] しかし、map の場合は、が使えない(?) ので、[]を使っています。 134> my $x = map { $_ } @list; $res[84] = 3 135> my $x = { map { $_ } @list }; Odd…(Continue Reading)

Perlの正規表現による文字列抽出をPythonでやりたい

投稿者: Anonymous 下記のようなPerlのコードと同じことをPythonでやりたくて調べています。 use utf8; use feature ‘unicode_strings’; use open ‘:encoding(utf8)’; # I/O default encoding is UTF-8 use open ‘:std’; # stdio encoding = utf8 use Encode qw(encode_utf8 decode); use strict; my $regExp = qr/[p{Han}p{Katakana}a-zA-Z0-90-9%][p{Han}p{Katakana}a-zA-Z0-90-9%・ー]*/; my $text = “三人行えば、必ずわが師あり”; my @matchedList = (); for ($text) { s/($regExp)/ do{ push @matchedList,$1; “”; }; /ge; } print…(Continue Reading)

ドラッグ&ドロップされたファイルをサーバにアップロードするには?

投稿者: Anonymous よろしくお願いします。 簡易ファイルサーバを作っています。 ファイルのアップロードについて、formの<input type = “file”>を使ってのアップロードはできています。 ドラッグ&ドロップでもファイルをアップロードする機能を付けたいと思っているのですが、質問があります。 色々なサイトを参考に、ドラッグ&ドロップされたファイルの名前を取得できるのは確認しました。 しかしながらperlで書いたCGIに渡すにも、 $q->tmpFileName($q->param(‘files’)); でテンポラリファイル名を取得できません。 まあ、実際にテンポラリファイルをアップロードしていないので当たり前ですよね。 ドラッグ&ドロップされたファイルをサーバにアップロードするにはどのようにすればいいでしょうか? javascript側・perl側、お教え下さい。 ・2018.1.22 追記 ご回答ありがとうございます。プログラムを修正したのですが、動きません。 とりあえず、ファイルのアップロード機能は省いて、取得したファイル名をレスポンスに表示してみようと思ったのですが…。 ・2018.1.24 追記 いただいた追記を元に修正したのですが、今度は onload 自体動いていないようです。デフォルトの挙動をします。 変更点は、 ・<script src=”http://code.jquery.com/jquery-1.12.4.js”></script> を追加 ・’PUT’ → ‘POST’ に ・<body>タグの最後で <script type=”text/javascript”> $(function(){ PageLoad(); }); </script> です。 ・2018.1.26 追記。 以下のコードでファイルをアップロードすることができました。 ありがとうございます。 一つ質問があります。 複数ファイルのドラッグ&ドロップの実装はどうしたらいいでしょうか? @files = $q->param(‘file’); で複数のファイル名を取得できますが、 $fp = $q->upload(‘file’) は1ファイルだけの気が…。…(Continue Reading)

16進数を10進数に変換するテーブル表

投稿者: Anonymous perlでテーブル表を作成するとき、行と列の項目はどういう基準で決定しますか? 項目ごとのデータを入れたいとき、どのようにすればよいですか。 下記のコードでは仕組みは分かりませんが、行と列は分かれております。 open (my $f, “>”, “table.txt”) or die “cannot open textfile : $!n”; printf $f “%4s”, “”; for ( my $item = 0 ; $item < 16 ; $item++ ) {   printf $f “%4X “, $item; } for ( my $num16 = 0 ; $num16 <=1023 ; $num16++ ) {   printf…(Continue Reading)

インクリメント演算子の+と-は実装が大きく異なっているのでしょうか?

投稿者: Anonymous まったく実践的じゃない質問です。 単なる好奇心からインクリメント演算子を何気なくいじって、結果がどうなるか試していました。 すると正負をひっくり返した場合にエラーが出る場合と出ない場合がありました。 +–+を前置した場合: $ perl -E ‘$z = 3; say +–+$z;’ 2 -++-を前置した場合: $ perl -E ‘$z = 3; say -++-$z;’ Can’t modify negation (-) in preincrement (++) at -e line 1, near “$z;” Execution of -e aborted due to compilation errors. どうしてこのような差が出るんでしょうか? perlのバージョンは5.18.2、OSXの上で実行しています。 以下はMO=Deparseした時の出力です: $ perl -MO=Deparse -E ‘$z = 3;…(Continue Reading)

連番処理でのブレイク処理で

投稿者: Anonymous 出力の5項目目に出力した1項目目+3項目目が同一の件数をカウントして表示したいです。 各処理の説明。 input.csvを読み込んで、output.txtを出力する。 input.csvの2項目からブレイク処理に応じて3項目目と4項目目を作成。 3項目目は、1から始まり2項目目がブレイクすると+1、1項目目がブレイクすると1にリセット。 ついで、データ連番が10になっても+1カウントします。 4項目目は、1から始まり1項目目が同じなら+1ずつカウントし、ブレイクしたら1にリセット。 入力データ(input.csv) 1,A0000001 1,A0000001 1,A0000001 1,B0000001 1,B0000001 2,B0000001 2,B0000002 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 3,C0000001 現在の出力(output.txt) 001,A0000001,0000001,0000001,001 001,A0000001,0000001,0000002,001 001,A0000001,0000001,0000003,001 001,B0000001,0000002,0000004,002 001,B0000001,0000002,0000005,002 002,B0000001,0000001,0000001,002 002,B0000002,0000002,0000002,001 003,C0000001,0000001,0000001,001 003,C0000001,0000001,0000002,001 003,C0000001,0000001,0000003,001 003,C0000001,0000001,0000004,001 003,C0000001,0000001,0000005,001 003,C0000001,0000001,0000006,001 003,C0000001,0000001,0000007,001 003,C0000001,0000001,0000008,001 003,C0000001,0000001,0000009,001 003,C0000001,0000001,0000010,001 003,C0000001,0000002,0000011,001 003,C0000001,0000002,0000012,001 出したい出力 001,A0000001,0000001,0000001,003 001,A0000001,0000001,0000002,003 001,A0000001,0000001,0000003,003 001,B0000001,0000002,0000004,002 001,B0000001,0000002,0000005,002…(Continue Reading)