16

経験豊富なプログラマーに 30 分間 Perl を教えます。Perl を学ぶ最善の方法は、コードを書くことです。CPAN に加えて、プログラマーが Perl の表現力、CPAN によって提供される機能の量を理解できるようにするために何を見せればよいでしょうか? トリッキーなことは別の日に取っておきます。

警告を使用します。
厳密に使用します。
# A_CPAN_LIB を使用します。

サブ example_func1 {
  # CPAN lib を使用するか、Perl のいくつかの基本機能をデモンストレーションします
}
example_func1();
# ...
__終わり__


これが私が思いついたものです...

どこから始めれば

信じられないかもしれませんが、man ページです。わかりました、代わりに perldoc を使用して、Windows フレンドリーにします。

perldoc ページ (または Unix/Mac の man ページ) は、Perl に最適です。man perl または perldoc perl と入力できます

perldoc パール; # 概要と数十のチュートリアルを表示します。man perl も同じです。

perldoc パーリントロ; # 初心者向けの Perl イントロ。man perlintro
perldoc perlrequick ; # Perl 正規表現チュートリアルの例

perldoc perlfunc ; # 組み込みの Perl 関数を表示
perldoc perlre ; # さらに Perl 正規表現。

CPAN

Perl ライブラリ サイト CPAN には、何千ものライブラリがあります。
perl -MCPAN -e '日時のインストール'

perldoc は、インストールされたモジュールでも機能します: perldoc モジュール

perldoc DateTime
perldoc DBI ; # データベース API。これでうまくいかない場合は、インストールしてください:
         perl -MCPAN -e 'install DBI'

推奨モジュール

perl -MCPAN -e 'ムースをインストール' ; # Perl は OOP
perldoc Mooseを行います。# Moose
perl について詳しく教えてください -MCPAN -e 'install CGI' ; # 簡単で汚い Web ページ
perl -MCPAN -e 'install Catalyst' ; #大きなウェブフレームワーク。時々インストールに問題があります。Google はあなたの友達
perl -MCPAN -e 'install CGI::Application' ; # 別の Web フレームワーク
perldoc CGI::Application ; # ドキュメントをざっと見てみましょう

ちょっとした Q&A。

Q: Ruby や Python の代わりに Perl を使用する必要があるのはなぜですか?
A: Perl を使用する人が増えています。Perl 用のライブラリは他にもあります (さらに多くの方法があります)。Perl は本当に素晴らしい GTD 言語です。

Q: なぜ人々は Perl を嫌うのですか?
A: あなたはそれでいくつかの醜いことをすることができます. 使用上の警告を覚えておいてください。厳密に使用します。すべてのコードで。コードを実行する前に確認できます。 perl -cこんにちは.pl


Perl トピック

データベースでの Perl の使用

http://www.perl.com/pub/a/1999/10/DBI.html

Web 開発に Perl を使用する

http://www.catalystframework.org

オブジェクト指向パール

http://www.iinteractive.com/moose

Perl ワンライナー

http://www.perlmonks.org/?node_id=470397
http://sial.org/howto/perl/one-liner

その他のチュートリアル

http://perlmonks.org/index.pl?node=チュートリアル

書籍

数十あります。
http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Dstripbooks&field-keywords=perl&x=0&y=0

ウェブサイト

Perlmonks
Perl.org
Pleac
StackOverFlow の Perl の隠れた機能
CPAN FAQ
Randall Schwartz の記事


助けを求める

Perl Nabble フォーラム
の IRC チャネル: freenode、irc.perl.org。いくつかあります:

irc://irc.perl.org/perl
irc://irc.perl.org/catalyst
irc://irc.freenode.net/modperl
irc://irc.perl.org/perl6

4

11 に答える 11

35

Learning Perlと呼ばれる本全体を書きました。目次をご覧ください。

この本は、1995 年以来、人々に Perl を教えてきた成果物です。特定のアプリケーションに合わせたものではなく、Perl プログラミングの 80% で使用する Perl の部分を人々に示しています。Perl 5.10 用に更新し、CPAN の使用に関するセクションを含めました。

幸運を、 :)

于 2008-11-26T12:33:19.877 に答える
13

Perlには、経験豊富なプログラマーにとってさえ異質である可能性が高い2つのものがあるため、叫び声を上げて逃げないように、それらについては早い段階で言及する必要があります。

コンテキスト:Perlのほぼすべての関数には2つの動作があります。「スカラーコンテキスト」で呼び出されて1つのことを実行する場合、「リストコンテキスト」で呼び出されると、代わりに別のことを実行します。これは奇妙で奇妙に見えるかもしれませんが(機械語ではそうです)、プログラミング言語に適用される「単数形」と「複数形」の自然言語の概念にすぎません。

変数:Perlには、2つの完全に異なる別個の変数システムがあります。字句変数(my)とパッケージ変数(our)。ほとんどのプログラミング言語を使用したことがある場合、字句変数は「通常」です。Lispのようなものを使用したことがない限り、パッケージ変数(つまり動的変数)は奇妙です。「できない場合を除いて、パッケージ変数よりも常に字句変数を優先します。」

于 2008-11-27T05:44:57.343 に答える
6

Perl で正規表現を使用するのがいかに簡単かを彼らに示してください。

于 2008-11-26T06:31:27.330 に答える
4

これは基本的にタスク指向の質問です。

解析に使用する場合は、STDINとファイルi/oの操作がいかに簡単かを示してください。

彼らがそれをデータベースに使用するつもりなら、クエリ結果からハッシュ参照を取得する方法を彼らに示してください、そしてそれは彼らを驚かせるはずです。

Perlには通常、ほぼすべてのタスクを超高速にする方法があります。彼らが行う必要のあるタスクを選び出します。

しかし、間違いなく私と地元の人を使うように彼らに教えてください。私の重要性を強調し、それは彼らの経験をより幸せにするでしょう。

于 2008-11-26T06:56:12.693 に答える
3

経験豊富なプログラマーであろうとなかろうと、30分でPerlは言うまでもなく、何かを教えるふりをすることはできません。せいぜい、あなたはいくつかのクールなワンライナーで彼を啓発することを試みることができます(比較のために、彼らの完全に肥大化したJavaの対応物を提供してください)。

于 2008-11-26T07:48:22.040 に答える
3

最初にリストとハッシュについて説明します。(病理学的に折衷的なラビッシュ リスター、思い出してください。) foreach が C スタイルの for よりもどれだけきれいかを彼に示してください。

彼が C/C++ から来ている場合は、http://perldoc.perl.org/perltrap.html または 'perldoc perltrap' を参照することを勧めします。これには、注意すべき最も明白な違いが含まれています。

于 2008-11-26T13:43:47.863 に答える
3

私の 2c ですが、CPAN に関連して、英語のテキストを文に分割する問題を彼らに課してみませんか?

最初は単純に思えます: 文は末尾にピリオドが付いた文字列です。

しかし、少し考えてみると、プログラマーはあらゆる種類の複雑さが生じることに気付くでしょう。10 進数または省略形がある場合は、ピリオドを途中に置くことができます。文は、「?」、「!」など、他のもので終わることができます。また "..."; 「ピリオドの後にスペースが続く」も役に立ちません。なぜなら、EOFはどうですか?

簡単に言えば、Perl に関して言えば、他の誰かがそのリストにあるすべてのことなどを考えています。したがって、Lingua::EN::Sentenceを使用します。

于 2008-11-28T03:55:09.810 に答える
2

彼が経験豊富なプログラマーであれば、Smart CommentsPODclosures-d:DProfswitch and dprofpp、one-liners、Perl CriticMoose__DATA__またはmapが好きかもしれません。(これは確かにクレイジーなミックスです。)Perlは魔法の多い言語ですが、彼はいつ単純なコードに固執するか、いつ杖を描くかを自由に選択できることを最初から説明します。経験豊富なプログラマーは選択を恐れません:-)

于 2008-11-26T07:11:45.953 に答える
2

私の頭に浮かんだアイデアは、あるフォーマットから別のフォーマットに情報を転送することでした。たとえば、xmlデータを取得して に転送JSONし、Web ページで使用します。

cpan JSON XML::Simple
use strict;
use warnings;

use JSON;
use XML::Simple;

my $data;
{
  open( my $file, '<', 'filename.xml' ) or die;
  $data = XMLin($file);
  close $file;
}
{
  open( my $file, '>', 'filename.json' ) or die;
  print $file to_json( $data );
  close $file;
}
于 2008-11-26T18:13:47.943 に答える
1

Perl が使用されているタスクのタイプに本当に依存しているという他のコメンターの何人かに同意します。この人物は Windows システム管理者ですか? 次に、Perl から WMI を使用する方法について説明します (ここでは scriptomatic が良いリソースになります)。

私は、Oreilley の「Perl Cookbook」のコピーを手に取り、そこからいくつかの興味深いトピックを見つけます。ここに本へのリンクがあります:リンクテキスト

Perl で私が気に入っていることの 1 つは、リストを比較して、結合、共通部分、または一意のリストの違いを探すのがいかに簡単かということです (Perl クックブックのレシピ 4.9)。Perl の威力を理解するのに役立ちます。

于 2008-11-26T16:02:32.310 に答える
1

それは、この「経験豊富なプログラマー」が経験したプログラミングの種類によって異なります。

彼らが多くのシェル プログラミングを行った場合、おそらく Perl の超 awk の個性に感銘を受けるでしょう。正規表現とテンプレートを使用して、実用的な抽出とレポートを行います。

複雑なデータ構造を扱うのが好きな C プログラマーに似ている場合は、ハッシュのハッシュをいかに簡単に作成できるか、結果のコードがどれだけ速く実行されるかを示してください。

... 等々。

于 2008-11-26T16:19:42.960 に答える