Perl

全6054件中181~200件表示
  • 下記を実現したプログラムを教えていただきたく。

    サーバーAからサーバーBの某ディレクトリ(ここでは/C/)にあるファイル(.tar)を30分間隔で監視する。 /C/には1日毎に過去に出たものとは違う(過去に出たファイル名とは重複はない)名前の2個の.tarファイルが置かれます。 これらのファイルは3日経過すると自動で削除される仕組みになっております。 例: aaa.tar (1/5に置かれた) bbb.tar (1/5に置かれた) ccc.tar (1/6に置かれた) ddd.tar (1/6に置かれた) eee.tar (1/7に置かれた) fff.tar (1/7に置かれた) 上記状態から1日経過した1/8は ccc.tar ddd.tar eee.tar fff.tar ggg.tar (1/8に置かれた) hhh.tar (1/8に置かれた) という状態になります。 /c/から最新の.tarをゲットするプログラムをperlで具体的に教えて(記述)いただけますでしょうか。 既にゲット済みであるものしかない場合は何もしません。 なお、プログラムはサーバーAに常時置かれているものとし、crontabで10分毎に実行されるているものとします。サーバーBにはプログラムは置きません。 perlとありますが、linux及びunixコマンドが含まれていても問題ありません。 ご助言の程、お願いします。

  • 条件付きソートができるエディタまたはプログラム

    こんにちは。 ファイルの中身を 記号(。、<>「」など) A-Z a-z あ-ん(「は」のように濁音と半濁音のある音は、はばぱの順) ア-ン(↑と同様) 漢字(あ-ん同様) に並べ替えたいのですが、このように条件がつけられるエディタ(無料)は無いでしょうか? またはプログラム(CまたはPerl)で実装できないでしょうか? 教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • sou-e9
    • Perl
    • 回答数4
  • pealを用いたcsvファイルの抽出

    現在1.5GB程のcsvファイルを処理しています 通常通りExcelやその他csvを開くソフトで開こうとしても どうしても処理に膨大の時間がかかる一方で一部しか開けない現状です そこでpealを用いて抽出をしようとしているのですが うまく出来ないのが現状です 仮に花のデータがあったとします 花の種類としてはチューリップやあじさい10種類以上の花があり 色や花識別番号,花の数が別の列に数字として入力されています   1行目が(空白),種類,色,花識別番号,花の数,実の数,枯れた花の数   2行目が(空白),チューリップ,黄色,1,2,2,2 3行目が(空白),チューリップ,緑,2,4,2,2 ...   10行目が 3行目が(空白),あじさい,緑,2,4,2,2 … ...以下同様にあじさいなど他の花の種類も入力されているとします このとき,花の名前と色と花識別番号を指定して 花の名前と色と花識別番号,花の数,実の数,枯れた花の数のデータを抽出をしたいのですが どうしても1列目の花の種類しか指定ができず,2列目以降の色や花識別番号を指定することができません 仮にチューリップを抽出しようとする場合は while(<STDIN>){ my @line = split(/,/, $_); $cols = @line; if($cols>1) { if($line[1] eq "種類" || $line[1] eq "チューリップ"|| $line[2] eq"2" ||) { print $_; } } } 現状は…以上ののような形にて作成してます しかし,これではうまくできませんでした 分かる方いらっしゃいましたら知恵を貸してください

  • 変数が大量にありすぎて美しくない!

    私は、こういうコードをよく書きます。 my $TDN = &func_hatten(8,10); my $TON = &func_hatten(2,55); my $MUR = &func_hatten(4,55); my $YJSNPI = &func_hatten(7,55); my $HOGE1 = &func_hatten(1,55); my $HOGE2 = &func_hatten(9,55); my $HOGE3 = &func_hatten(1,55); my $HOGE4 = &func_hatten(9,55); 変数に、関数の戻り値を放り込むのですが、これが30個、40個もひとつのコードに書き込むのは美しくないような気がしています。 こういう場合は、プロの世界ではどうするのが「一般的」でしょうか?

  • Perlのmyとourについて

    myとourの違いが、飲み込めません。 以下、当方の環境とします。 【コード(1) ファイル名は read.pl とする】 #!/bin/perl use strict; use warnings; my @filelist = <abc*.log>; foreach my $i (0 .. $#filelist){ open(IN, "$filelist[$i]"); my @alltxt = <IN>; sub f_readlines { my $export=0; foreach my $strings(@alltxt){ $export .= $strings; } return $export; } 【コードの説明と前提】 これは、read.plを実行すると、同じディレクトリにある、「abcで始まり .logで終わるファイル」のすべてを引数として、 同じ処理を繰り返すコードです。 実行時のカレントディレクトリには、abc001.log、abc002.log、abc003.logという3つのファイルが存在します。 abc001.log には aaaaaaa という文字列が書き込まれています。 abc002.log には bbbbbbb という文字列が書き込まれています。 abc003.log には ccccccc という文字列が書き込まれています。 【コード(1)の実行結果】 $ ./read.pl aaaaaaa aaaaaaa aaaaaaa 【現状と当方の考え】 このコードの本来の目的は、存在するファイルの数だけ、その中身を順次読みだす、というものです。 ですので、コード(1)の実行結果は $ ./read.pl aaaaaaa bbbbbbb ccccccc になってくれないといけないのです。 しかし、 my @alltxt = <IN>; の行を our @alltxt = <IN>; に書き換えると、うまくいきました。 ネットを見ていると、myはスコープの範囲が限定的で、ローカルな変数のようで、 グローバル(どこでも変数として取り出せる)なものが our、というように読み取れます。 foreach の処理の中で宣言した my @alltxt ですから、 ファイルの数だけ、毎回 @alltxt の中身の値は変わるはずです。 それが、変わってくれず、初回に@alltxtに読み込んだ aaaaaaa だけが、ファイルの数だけ 出力されてしまいます。 【質問したいこと】 (1)myを使って代入した変数の中身は、同じスコープ内で作成した関数からは読みだせないのか? (2)それならば、なぜ初回のaaaaaaaは、読み出せているのか? 以上よろしくお願いします。

  • chart::gnuplot perl エラー

    初めて質問します。 もしご存知の方がいたら教えてください。 ・Strawberryperl 5.16.3をインストール ・Imagemagick-6.9.0-Q16 をインストール ・Gnuplot4.6 をインストール ・Chart::Gnuplot モジュールをインストール ・OS:Windows8 64bit C:\Program Files\ImageMagick-6.9.0-Q16\PerlMagick\demo\demo.pl をコマンドラインで実行し、起動を確認。 Gnuplot、Imagemagickともに環境変数でPathはとおってます。 コマンドプロンプトで、gnuplot, wgnuplot ともに起動を確認。 以下のコードを実行したところエラーが出て頭を抱えています。 gnuplotとimagemagickのインストールがうまくいったと思ったのですがなぜか動きません。 --------------------- use strict; use warnings; use utf8; use Chart::Gnuplot; my @xdata = qw/ Apr May Jun /; my @ydata = qw/ 3145 3749 3635 /; my $filename = "test.png"; my $chart = Chart::Gnuplot->new( output => $filename, timeaxis => 'x', ); my $dataset = Chart::Gnuplot::DataSet->new( xdata => \@xdata, ydata => \@ydata, style => 'linespoints', linetype => 1, pointtype => 6, timefmt => '%b', ); $chart->plot2d($dataset); ---------------------- 以下エラー内容 convert.exe: FailedToExecuteCommand `"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH - dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEV ICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -g504x720 "-sOu tputFile=C:/Users/Mieko/AppData/Local/Temp/magick-1452Dc6vcLxxdw0R%d" "-fC:/User s/Mieko/AppData/Local/Temp/magick-1452AL8tJ_0U-Cq1" "-fC:/Users/Mieko/AppData/Lo cal/Temp/magick-1452Y727r0aGDb5H"' (指定されたファイルが見つかりません。 ) @ error/delegate.c/ExternalDelegateCommand/458. convert.exe: FailedToExecuteCommand `"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH - dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEV ICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -g504x720 "-sOu tputFile=C:/Users/Mieko/AppData/Local/Temp/magick-1452Dc6vcLxxdw0R%d" "-fC:/User s/Mieko/AppData/Local/Temp/magick-1452AL8tJ_0U-Cq1" "-fC:/Users/Mieko/AppData/Lo cal/Temp/magick-1452Y727r0aGDb5H" -c showpage' (指定されたファイルが見つかりませ ん。 ) @ error/delegate.c/ExternalDelegateCommand/458. convert.exe: Postscript delegate failed `指定されたファイルが見つかりません。 ' @ error/ps.c/ReadPSImage/941. convert.exe: no images defined `C:\Users\Mieko\AppData\Local\Temp\If7Fvb0CUD\plo t.tmp.png' @ error/convert.c/ConvertImageCommand/3210.

    • 締切済み
    • Jan55
    • Perl
    • 回答数1
  • Perlでのファイルの読み込み

    以下内容のファイルabc.csv を読み込み、1列目の文字列を指定したとき、2列目の文字列の内容を取得したいと思います。MEを指定したらMELONを取得したい。 その場合のコードを教えて下さい。 AP,APPLE OR,ORANGE ME,MELON PE,PEACH GR,GRAPE 以上、よろしくお願いします。

  • perlの文字列組み合わせ

    perlでプログラムを作成中です。 作成したモノはうまく動かないので掲載できませんが、 どなたかお知恵を貸してください。  入力文字列に対して 1をA、2をB、3をC に置換するプログラムを作成中です。 ただし、全ての組み合わせを出力したいのです。 つまり、”213”と入力すると回答は、 B13 BA3 BAC 2A3 21C 2AC B1C と出力したいのです。  プログラムとしては、入力文字列を1つずつを配列に入れて、それぞれの変換 をかけ、1つずつ組み合わせて出力しているのですが、どうもうまくいきません。 手法は特に固執してませんので、どの様な形でも結構です。 よろしくお願いします。

    • ベストアンサー
    • oguogu01
    • Perl
    • 回答数16
  • Net::SMTPでメール配信できる限界件数

    今Net::SMTPを使ってメール配信するプログラムを作っています。 簡単なメルマガ配信のようなものです。 プログラムではループを使って一件、一件配信するのではなく、bccで一斉に送ろうと思っています。 その時に、bccで送ることのできるMAX件数はいくらぐらいなのでしょうか? 実際に送る件数は300件を超えることはありません。 ご教示よろしくお願いいたします。

  • MySQLに登録すると文字化け

    Perlのスクリプトで、MySQLにユーザー情報を登録しているのですが、 二つのDBに登録しています。 一つ目のDBはEUC-JPで、もう一つがUTF-8のMySQLになっています。 具体的には、最初はあるCMSのユーザー登録を別のPerlスクリプトで行い正常に保存されていたのですが、今年の春頃からWordpressも使う必要があり、そちらがUTF-8のDBなのです。 英数字なら問題なく登録可能なのですが、日本語が入ると、UTF-8のDBでは文字化け等が発生して、正常に登録されませんでした。 ちなみに、Perlスクリプト自体はEUC-JPで記述・保存されているファイルなのですが、先述の通り、先のCMS側のDBがEUC-JPなので、このPerl自体をUTF8にするわけにもいかず・・・ 以下のようなソースになっています。 ------------------------------------------------------------------------ # データベースへアクセス $dbh = DBI -> connect ("DBI:mysql:$dbname:$dbhost",$dbusername,$dbpassword) or show_ErrorPage('データベースにアクセス出来ません。'); #$dbh->do("set names utf8"); #$data{'username'} = decode('utf8', $data{'username'}); #$data{'username'} = encode("shiftjis",decode("euc-jp",$data{'username'})); #$data{'username'} = encode("euc-jp",decode("utf8",$data{'username'})); #$data{'username'} = Encode::from_to($data{'username'}, 'utf8', 'euc-jp'); #utf8::decode($data{'username'}); #$data{'username'} = Encode::from_to($data{'username'},'euc-jp','utf-8'); $sth = $dbh->prepare( qq{ INSERT INTO $table2 (ID,user_login,user_pass,user_nicename) VALUES("$rows[0]", "$data{'username'}","$data{'password'}", "$data{'username'}") } ); $sth -> execute() or show_ErrorPage("データベースを実行出来ませんでした。$DBI::err ($DBI::errstr)"); $sth -> finish(); $sth2 = $dbh->prepare(qq{ SELECT ID FROM $table2 WHERE user_login = "$data{'username'}"}); $sth2 -> execute() or show_ErrorPage("データベースを実行出来ませんでした。$DBI::err ($DBI::errstr)"); @rowss = $sth2->fetchrow_array; $sth2 = $dbh->prepare( qq{ INSERT INTO $table3 (user_id,meta_key,meta_value) VALUES ("$rowss[0]","first_name",""), ("$rowss[0]","last_name",""), ("$rowss[0]","nickname","$data{'username'}"); $sth2 -> execute() or show_ErrorPage("データベースを実行出来ませんでした。$DBI::err ($DBI::errstr)"); ------------------------------------------------------------------------ 少し省いている部分もあり、数字等に間違いがあるかもしれません。 このPerlはフォームスクリプトで、$data{'username'}にユーザー名を入力してもらいます。 それを「user_login」や「user_nicename」に登録をしたいのですが、先のEUC-JPのDBでは問題ありませんが、UTF8のDBでは空白になります。 その後色々調べてみて、上記コードの#の部分を追加して試してみましたが、空白ではないものの文字化けになったり数字になって登録されてしまうようになりました。 やりたいことは、「$data{'username'}」という変数をUTF8に文字エンコードをしてWordpress側のDBに登録を行いたいのです。 その後「perl utf8 フラグ」などのキーワードを知り調べてみましたが、具体的に自分の知識では解決できずに悩んでおります。 もし宜しければご教示頂けますと幸いです。 宜しくお願い申し上げます。

  • HASH(0xほげほげ)

    出力が”HASH(0x197fa1c)”のような場合、どう解析してけばいいでしょうか? --------------------------------------------------------------------- #!C:\Perl\bin\perl.exe -w use strict; use Win32::OLE::OPC; #変数↓ my $items_stringP1 = "PLC0"; #OPCServer のデバイス名 my $items_stringP2 = "D"; #MELSECのデバイス名称 my $items_stringP3 = 0; #先頭アドレス my $maxcount = 1; #点数(5) #変数↑ my $opcintf = Win32::OLE::OPC->new('OPC.Automation', 'Takebishi.Dxp'); my $group = $opcintf->OPCGroups->Add('grp'); my $items = $group->OPCItems; my $items_stringP3_Min = $items_stringP3; my $count = 0; while ($count < $maxcount){ my $items_string=$items_stringP1.".".$items_stringP2.$items_stringP3; $items_stringP3 ++; $count ++; $items->AddItem($items_string, $opcintf); } print "********************"."\n"; print $items ."\n"; print "********************"."\n"; my $key; foreach ( keys %$items) { print "キー値 : $key\n"; } --------------------------------------------------------------------- 出力結果:↓ ******************** Win32::OLE::OPC::Items=HASH(0x197fa1c) ******************** Use of uninitialized value $key in concatenation (.) or string at C:\testPerl\OPC\OPC08.pl line 38. キー値 : Use of uninitialized value $key in concatenation (.) or string at C:\testPerl\OPC\OPC08.pl line 38. キー値 : Use of uninitialized value $key in concatenation (.) or string at C:\testPerl\OPC\OPC08.pl line 38. キー値 :

    • ベストアンサー
    • x001
    • Perl
    • 回答数4
  • ActivePerlでダウンロードしたモジュール

    ActivePerl(Windows)でダウンロードしたモジュールを使えるようにする方法を教えてください。 Win32::OLE::OPC1.01を下のサイトからダウンロードして使用したいのですが どうインストールするのかよくわかりません。 https://metacpan.org/release/Win32-OLE-OPC

    • ベストアンサー
    • x001
    • Perl
    • 回答数1
  • 圧縮ファイルの取得

    http://okwave.jp/qa/q8823112.html こちらで質問させていただいたように、/public_html/file.zipではなく、/file.zipの ファイルをダウンロードさせるために以下の方法を取りました。 print "Content-type: application/x-tar\n\n"; open( FH, "$filename" ); binmode FH; binmode STDOUT; print <FH>; close( FH ); この方法では、ブラウザで表示させてダウンロードできるようになったのですが、 これをperlで、wgetか、何かを使って取得したいと考えています。 ところが、wgetで試したところ、zipファイルではなく、cgiページ自体のソースの取得になってしまいました。 zipファイルを取得するにはどのようにしたらよいのでしょうか。 perlの知識があまりないので、どうしても解決できません。 宜しければ具体的に書き方を教えていただけると大変助かります。どうぞよろしくお願いいたします。

    • ベストアンサー
    • link222
    • Perl
    • 回答数1
  • 圧縮ファイルの出力

    /publick_html/に、ホームページファイルがあります。 /publick_html/a.zip をCGIで読み出す時は、 print "Location: "./a.zip"\n\n"; でいいのですが、 /a.zip を読み出す時の方法がわかりません。可能でしょうか? お手数をおかけいたしますが、よろしくお願いいたします。

    • ベストアンサー
    • link222
    • Perl
    • 回答数1
  • HTMLで表示させる記述を教えてください。

    お世話になります。 すいません教えてください。 $bannerには、GIFバナーにリンクが付いている内容です。 内容としては、 <a href="http://www.homepage.com/"><img src="mihon.gif"></a> とします。 これを、 print "$banner\n"; と書くと、バナーが表示されてしまいます。 これを、ウェブ上でHTMLで<a href="http://www.homepage.com/"><img src="mihon.gif"></a>と表示させるにはどうしたらいいのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • kitaone
    • Perl
    • 回答数2
  • ファイルの削除

    日付をファイル名とし、データ量で「-」と「数字」を付加した 2ページ目以降が作成され、日によって1~10ページ程度の htmlファイルが以下のように出来上がります。 ./hoge/20141106.html ./hoge/20141106-2.html ./hoge/20141106-3.html 以下の処理で「./hoge/20141106.html」は削除できましたが、 「-2」や「-3」以降も削除する記述をご教示お願いします。 unlink("hoge/$temp.html"); どうぞ宜しくお願いします。

    • ベストアンサー
    • mnbvc321
    • Perl
    • 回答数3
  • スクリプト言語「perl」はすたれゆく言語?

    WEB開発業者に委託したWEBアプリの開発言語が「perl」で 作成されたものでした。 知り合いの業者さんに聞くと、「滅び行くコード」を使っているとの事です。 まだローンチしていないサービスですが、「perl」で作られたサービスを 今後、数年間運用してゆけるのか不安に想い今回質問させて頂きました。 もし、最短3年ほどの運用に耐えられないものでしたら、ある程度のコストを かけてでも、別会社へ再委託したいと思います。 忌憚のない意見をお聞かせ下さい。

  • PerlでXMLのフィルタリング

    いつもお世話になっております。Perl初心者です。 以下のサイトを参考に、XML::Parser::PerlSAX を使用して、XMLファイルをフィルタリングするプログラムを作成しようと考えています。 http://mkweb.bcgsc.ca/intranet/perlbook/pxml/ch05_01.htm ここで、ある要素のある属性の、異なる属性値ごとに、文字データイベントを処理する方法を変えたいのですが、どのようにすればよいでしょうか。 各種SAXイベントハンドラも、XML::Handler::Subs も考えましたが、何を使えばよいか検討がつきません。よろしくお願いします。

  • 与えられた配列の順にソートする方法

    例えば、与えられた配列が (1, 3, 5, 7, 9, 2, 4, 6, 8, 10) だった場合に、 入力配列が (1, 2, 3, 4, 5) だったら、(1, 3, 5, 2, 4) のように並び替えた いと考えています。 下記のような方法を考えましたが、いずれもできそうにありません。 grep { @ref } @input map { grep { $_ } @ref } @input forループ等を使えば容易にできるのでしょうが、なるべく自前のコードは書き たくなく、map, grep, sort等を組み合わせてできればよりベターだと考えてい ます。 なんとか、スマートな方法でこれを実現することはできないでしょうか。

    • ベストアンサー
    • entree
    • Perl
    • 回答数1
  • perlで正常に検索できない

    CGI RESCUE さんの 簡易データベースでdatファイルを検索しようとしています。。 http://www.rescue.ne.jp/cgi/database/ キーワードで検索をしようとしているのですが、うまくヒットしません。 CGIは以下のようになっています。 # キーワード(フリーワード)  if ($FORM{'keyword'} ne '') {   if ($com5 =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'keyword'}/i) { ; }   elsif ($com4 =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'keyword'}/i) { ; }   else { next; } } $com5には「スズキ用<br>ドアトリム<br>バックミラー」と入っていたとします。 「スズキ」または「ドア」・「ドアトリム」・「トリム」と入力すると、ヒットします。 「バック」または「バックミラー」で検索するとヒットしません。 改行が悪いのかと思い、 $com5を「スズキ用ドアトリムバックミラー」に修正してみました。 同じように「スズキ」等はヒットするのですが、「バック」または「バックミラー」で検索するとヒットしません。 「バックミラー」と言う語句がヒットしないのかと思ったのですが・・・ $com5を「バックミラードアトリムスズキ用」に修正したとします。 「バック」・「バックミラー」でヒットします。 また、「ドア」・「トリム」まではヒットしますが、「スズキ」・「スズキ用」になるとヒットしなくなります。 全くヒットしなかったり、動作しないわけではないので、そもそもが間違っているとかではなく検索する部分で何か文字数制限があるような感じですが、これはどこを修正したら良いでしょうか? 他に情報を記入しないといけない物があれば指摘お願いします。