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

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


5
CPANをroot以外のユーザーとして使用するにはどうすればよいですか?
ルートアクセス権のない共有サーバーにperlモジュールをインストールしたい。これどうやってするの?彼らはまた古いバージョンのCPANを持っているようです(コマンドを実行するとそれについて不平を言います)、ルートアクセスを必要とせずに私のアカウントから使用されているCPANコマンドを更新することは可能ですか?
81 perl  cpan 

14
Perlで、キーが特定の配列から取得されるハッシュを作成するにはどうすればよいですか?
配列があり、「配列にはXが含まれていますか?」をたくさん実行することがわかっているとします。チェックします。これを行う効率的な方法は、その配列をハッシュに変換することです。ここで、キーは配列の要素であり、次のように言うことができます。if($ hash {X}){...} この配列からハッシュへの変換を行う簡単な方法はありますか?理想的には、匿名配列を取得して匿名ハッシュを返すのに十分な汎用性が必要です。
80 arrays  perl  hash 


7
モジュールで定義されているが、ランタイムフェーズで使用される前の関数を上書きしますか?
非常にシンプルなものを考えてみましょう。 # Foo.pm package Foo { my $baz = bar(); sub bar { 42 }; ## Overwrite this print $baz; ## Before this is executed } とにかく、test.pl何$bazに設定されているかを変更Foo.pmし、何か他のものを画面に出力させるコードを実行することはできますか? # maybe something here. use Foo; # maybe something here コンパイラフェーズで上記を強制的に印刷することは可能7ですか?
20 perl  compilation 

2
一部のユーザーがPerlでクラス名を引用するのはなぜですか?
を見るとType::Tiny、の呼び出しのクラス名がType::Tiny->new公式ドキュメントに引用されていることがわかります。 my $NUM = "Type::Tiny"->new( name => "Number", constraint => sub { looks_like_number($_) }, message => sub { "$_ ain't a number" }, ); どうしてこれなの?これは単なるスタイルですか?このプラクティスにはパフォーマンス上の影響がありますか?


1
Rakuでwc -lをエミュレートする方法
perl 5では、wc -lonelinerを使用してエミュレートできます。 perl -lnE 'END {say $.}' test.txt この機能をRakuに実装する方法 これを実装しようとすると: raku -e 'say "test.txt".IO.open.lines.elems' 遅くなり、多くのメモリを使用することが判明 複製のための情報: $ wget http://eforexcel.com/wp/wp-content/uploads/2017/07/1500000%20Sales%20Records.zip $ unzip "1500000 Sales Records.zip" $ mv "1500000 Sales Records.csv" part.txt $ for i in `seq 1 10`; do cat part.txt >> test.txt ; done $ du -sh test.txt 1.8G …
9 perl  raku 

2
PerlのGlobには制限がありますか?
次の5文字の期待文字列を実行しています。 while (glob '{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}'x5) { print "$_\n"; } しかし、それは4文字しか返しません: anbc anbd anbe anbf anbg ... ただし、リストの文字数を減らすと、次のようになります。 while (glob '{a,b,c,d,e,f,g,h,i,j,k,l,m}'x5) { print "$_\n"; } それは正しく戻ります: aamid aamie aamif aamig aamih ... 私がここで欠けているものを誰かに教えてもらえますか、ある種の制限はありますか?またはこれを回避する方法はありますか? それはどんな違いをした場合、それは両方で同じ結果を返すperl 5.26と、perl 5.28
9 perl 

2
Perl 5.26とともにUbuntuにRaku(Perl 6)をインストールする
楽(Perl 6)とその構文を学びたいです。 私のUbuntuマシンにはすでにPerl 5がインストールされています。 vinod@ubuntu-s-1vcpu-1gb-nyc1-01:~$ perl -v This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi (with 67 registered patches, see perl -V for more detail) Copyright 1987-2017, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General …

3
Text :: CSV_XSを使用して、csv形式の文字列をディスクに書き込まずに解析できますか?
(APIを使用して)ベンダーから「csvファイル」を取得していますが、彼らがしていることはすべてを彼らの応答に吹き込んでいるだけです。もちろん、それらの厄介な人間の一部がデータを入力して改行のような「機能」を付けたことを除いて、それは重大な問題ではありません。私が今行っているのは、生データ用のファイルを作成し、それを再度開いてデータを読み取ることです。 open RAW, ">", "$rawfile" or die "ERROR: Could not open $rawfile for write: $! \n"; print RAW $response->content; close RAW; my $csv = Text::CSV_XS->new({ binary=>1,always_quote=>1,eol=>$/ }); open my $fh, "<", "$rawfile" or die "ERROR: Could not open $rawfile for read: $! \n"; while ( $line = $csv->getline ($fh) ) …
8 csv  perl  filehandle 

1
Rakuで使用する場合、Perl 5モジュールのData :: Printerの `show_tied`オプションをオフにするにはどうすればよいですか?
CPAN PerlモジュールData :: Printer(DP)をPerlで使用しました。それは素晴らしい働きをします。 楽コードで使いたい。 この:from<Perl5>機能を使用してインポートし、それを使用してコードを実行すると、(tied to Perl6::Hash)ハッシュの表示に注釈が追加されます。1 以下のようDPのCPANのドキュメントを示して、この注釈はオプションによって制御されていますshow_tied。デフォルトのオン(に設定)ではなく、オフ(に設定0)にしたい。Perlでこれを行う方法は次のとおりです。1 use Data::Printer show_tied => 0; しかし、私が楽でこれを試したとき: use Data::Printer:from<Perl5> show_tied => 0; 私は得ます: 「Data :: Printer」からのインポート中にエラーが発生しました:そのようなタグ「show_tied」はありません show_tiedRakuでDPを使用する場合、どのようにオフにしますか? 脚注 1おそらくこれは、Inline :: Perl5(この:from<Perl5>機能を実装)がスムーズなPerl / Raku相互運用を可能にするために何かをしているためです。
8 perl  import  module  tags  raku 

1
展開された正規表現を展開されていない形式で印刷するにはどうすればよいですか?
拡張表記(qr/.../x)を使用して作成された正規表現を非拡張形式で印刷することはできますか?例えば: my $decimal = qr/ (?=\d|\.\d) # look-ahead to ensure at least one of the optional parts matches \d* # optional whole digits (?:\.\d*)? # optional decimal point and fractional digits /x; say $decimal; これをとして印刷してほしい(?=\d|\.\d)\d*(?:\.\d*)?。 機能しない部分を取り除くパーサーを作成することもできますが、これはperlがすでに行っていることを複製することになるため、重要なケースのいくつかが間違っている可能性があります。 (はい、これは少しばかげているようです。多くのメッセージを印刷する必要がありmatched <pattern>、パターンに拡張表記を使用できるようにしながら、メッセージを1行に制限したいというユースケースがあります。)
8 regex  perl 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.