タグ付けされた質問 「perl」

Perlは手続き型の高水準の汎用動的プログラミング言語であり、正規表現と文字列解析機能のネイティブサポートで知られています。Perlに関する一般的な質問には、このタグを使用してください。新しい(ただし関連する)言語Raku(以前の "Perl 6")に関連するものについては、rakuタグを使用してください。他の言語でのPerlスタイルの正規表現の場合は、regexタグを使用します。PCREライブラリに基づいている場合は、pcreタグを使用します。

29
インストールされているCPANモジュールのリストを取得するにはどうすればよいですか?
試してみる以外に perldoc <module name> 個別に、またはファイルシステムを調べてディレクトリを確認するCPANモジュールについては、どのモジュールをインストールしたかわかりません。 インストールされているすべてのCPANモジュールの大きなリストを取得する最も簡単な方法は何ですか?コマンドラインまたはその他から。
88 perl  cpan 


14
実行中の標準偏差を効率的に計算する方法は?
番号のリストの配列があります。例: [0] (0.01, 0.01, 0.02, 0.04, 0.03) [1] (0.00, 0.02, 0.02, 0.03, 0.02) [2] (0.01, 0.02, 0.02, 0.03, 0.02) ... [n] (0.01, 0.00, 0.01, 0.05, 0.03) 私がやりたいのは、すべての配列要素にわたって、リストの各インデックスで平均と標準偏差を効率的に計算することです。 つまり、配列をループして、リストの特定のインデックスの値を合計しています。最後に、「平均リスト」の各値をn(母集団からのサンプルではなく、母集団で作業しています)で除算します。 標準偏差を実行するために、平均を計算したので、もう一度ループします。 配列を2回通過することは避けたいと思います。1回は平均用で、もう1回はSD用です(平均を取得した後)。 配列を1回だけ通過して、両方の値を計算するための効率的な方法はありますか?インタープリター言語(PerlやPythonなど)または擬似コードのコードであれば問題ありません。

6
'useutf8;'の使用 「印刷物のワイド文字」を教えてくれます
次のPerlプログラムを実行すると: perl -e 'use utf8; print "鸡\n";' この警告が表示されます: Wide character in print at -e line 1. このPerlプログラムを実行すると: perl -e 'print "鸡\n";' 警告は出ません。 use utf8PerlスクリプトでUTF-8文字を使用する必要があると思いました。なぜこれが機能しないのですか?どうすれば修正できますか?私はPerl5.16.2を使用しています。これがコマンドラインのワンライナーではなくファイルにある場合も、同じ問題が発生します。
86 perl  unicode  utf-8 

5
Perlビルド、単体テスト、コードカバレッジ:完全な実例
Perlビルドプロセスとユニットテストおよびコードカバレッジに関して私が見つけたほとんどのStackoverflowの回答は、そこにあるドキュメントのCPANを示しているだけです。CPANモジュールを指すことは、完全なドキュメントが存在することになっている場所であるため、まったく問題はありません。しかし、多くの場合、完全に機能するコード例を見つけるのに苦労しました。 典型的なチュートリアル「HelloWorld」のサンプルソースコードのように、ダウンロードまたはIDEに貼り付けることができる実際の動作コードサンプルをインターネット全体で検索してきましたが、単体テストとコードを使用したビルドプロセスを示す例です。カバレッジ分析。これらのテクノロジーとプロセスを実証する完全な作業プロジェクトの小さな例を誰かが持っていますか? (私には小さな実用的な例があり、それを使って自分の質問に答えますが、私が思いついたものよりも良い例を持っている他のSOユーザーがおそらくいるでしょう。)

9
Perlで文字列を数値に変換するにはどうすればよいですか?
10進値を保持する文字列があり、その文字列を浮動小数点変数に変換する必要があります。したがって、私が持っている文字列の例は「5.45」であり、それに.1を追加できるように同等の浮動小数点が必要です。インターネットで検索しましたが、文字列を整数に変換する方法しかわかりません。

1
PerlでPythonスクリプトを実行すると、構文エラーが発生しないのはなぜですか?
テスト用のPythonコードをに書き込んtest.pyだところ、次のように起動します。 perl test.py しばらくして、私は自分の間違いに気づきました。Pythonインタープリターのように、Pythonコードが実際に正しく実行されるため、「しばらくすると」と言います。 PerlがPythonを解釈するのはなぜですか?test.pyこのように見えます: #!/usr/bin/python ...Python code here... 興味深いことに、反対の操作(つまり呼び出しpython something.pl)を行うと、構文エラーが大量に発生します。
85 python  perl 

4
ネストされたキャプチャグループは、正規表現でどのように番号付けされますか?
正規表現がネストされた括弧のキャプチャ動作をどのように処理するかについて定義された動作はありますか?より具体的には、異なるエンジンが最初の位置で外側の括弧をキャプチャし、後続の位置でネストされた括弧をキャプチャすることを合理的に期待できますか? 次のPHPコードを検討してください(PCRE正規表現を使用) <?php $test_string = 'I want to test sub patterns'; preg_match('{(I (want) (to) test) sub (patterns)}', $test_string, $matches); print_r($matches); ?> Array ( [0] => I want to test sub patterns //entire pattern [1] => I want to test //entire outer parenthesis [2] => want //first inner [3] => to …


1
「現代の」正規表現の認識力
実際の現代の正規表現は実際にどのクラスの言語を認識しますか? 後方参照(例(.*)_\1)を持つ無制限の長さのキャプチャグループがある場合は常に、正規表現が非正規言語と一致するようになりました。しかし、これだけでは、次のようなものに一致するのに十分ではありませんS ::= '(' S ')' | ε—親のペアを一致させる文脈自由言語。 再帰的な正規表現(これは私にとっては新しいものですが、PerlとPCREに存在すると確信しています)は、少なくともほとんどのCFLを認識しているように見えます。 誰かがこの分野で何か研究をしたり読んだりしましたか?これらの「現代の」正規表現の制限は何ですか?彼らは、LLまたはLR文法のCFGよりも厳密に多いか厳密に少ないかを認識していますか?または、正規表現では認識できるがCFGでは認識できない言語とその逆の言語の両方が存在しますか? 関連する論文へのリンクをいただければ幸いです。

9
Perlで、$ variableが定義されていて、長さがゼロ以外の文字列を含んでいるかどうかを簡潔に確認するにはどうすればよいですか?
私は現在、次のPerlを使用して、変数が定義され、テキストが含まれているかどうかを確認しています。defined「初期化されていない値」の警告を回避するために、最初に確認する必要があります。 if (defined $name && length $name > 0) { # do something with $name } これを書くためのより良い(おそらくより簡潔な)方法はありますか?
83 perl  string 


4
ApacheのSetEnvに似たNginx変数?
ApacheでSetEnvを使用して、PHPでを使用して回復する仮想ホストにいくつかの変数を設定し$_SERVER[the_variable]ます。 現在、Perl CatalystとNginxに切り替えていますが、Nginxの「env」ディレクティブは同じではないようです。それは動作しません。どうすればそれを達成できますか? これは、誰かがより良いアプローチを提案できる場合や、以前のシステムがNginxで機能しない場合に備えて、背景画像です。 私は多くのドメインで同じアプリを使用しています。すべてのデータは、同じ構造の異なるデータベースから取得されます。 データベース名は、その環境変数で仮想ホストにハードコードされています。 私がデータベース名を知っているように、すべてのクエリは最初のクエリから適切なデータベースに送られます。 同じ変数をディレクティブに含めるだけで、同じデータベースを使用して複数のドメインを持つことができます。
82 apache  perl  nginx  catalyst 

2
<< 'm' = 〜m >>構文はperlで何を意味しますか?
だから私はperlが非常に変わった構文を持っていることを理解しているが、先日仕事でコードスニペットに出くわし、混乱した。誰かがそれが何を意味するのか私に説明してもらえますか? &lt;&lt;'m'=~m&gt;&gt; print $a unless $b; return; m ; HEREDOC構文のように見えますが、これまでに見た形式ではありません。
82 perl 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.