古い記事
ランダムジャンプ
新しい記事
「続・初めてのPerl」のどこで何が説明されているかの自分用メモ。

続・初めてのPerl - Perlオブジェクト、リファレンス、モジュール


§2. 大規模なプログラムの作成

do → require → package
perl -V
perl -I/home/yto/...

§3. リファレンスの基礎

\@skipper
@{$items} _ @$items
$$items[1] _ $$items->[1]
$root->[2]->[1]->[0] _ $root->[2][1][0]
\%hash
$crew[0]->{'name'} _ $crew[0]{'name'}
@hash{qw(name position)}
@$hash_ref{qw(name position)} ハッシュスライス

§4. リファレンスとスコープ

リファレンスカウント
$reference_to_skipper = undef;
($ref->[-1])
my $array_ref = [ qw(a b c d e) ];
my $hash_ref = {a=>1, b=>2, c=>3};

§5. 複雑なデータ構造の操作

perl -d  ("s", "x \%hash")
Data::Dumper
$Data::Dumper::Purity = 1;
Storable
grep
map
map %hash = map {$_, 3 * $_} @input_numbers;

§6. サブルーチンのリファレンス

my $ref_to_greeter = \&skipper_greets;
&{$ref_to_greeter}("Gilligan")
&$ref_to_greeter("Gilligan")
$ref_to_greeter->("Gilligan")
$sub_ref = sub { ... }
File::Find でコールバック、クロージャの説明
sub create {my $count; return sub {print ++$count}}
{my $count; sub count_one {++$count}} count_one();

§7. リファレンスの実用的な使用方法

sort {$a <=> $b} @array
シュワルツ変換(Schwartzian Transform)
再帰的に定義されたデータ

§8. オブジェクトの基礎

Class->method(@args) _ Class::method("Class", @args)
@ISA
SUPER

§9. オブジェクトとデータ

(あとで)

§10. オブジェクトの破棄

(あとで)

§11. オブジェクトの高度な使用方法

(あとで)

§12. モジュールの使用方法

File::Basename
use File::Basename (); my $base = File::Basename::basename($path);
File::Spac
Math::BigInt
use lib "/home/yto/lib";
Exporter
@EXPORT, @EXPORT_OK
use CGI qw(param); my $f = param("foo");

§13. ディストリビューションの作成

h2xs -XAn Island::Plotting::Maps

§14. テスト

リグレッションテスト
Test::Harness
Test::Simple
Test::More
ok, cmp_ok, like, isa_ok, can_ok, TODO: { }

§15. CPANへの登録

Comprehensive Perl Archive Network
PAUSE (Perl Authors Upload Server) ID

追記:修正メモ。
$hash_ref{qw(name position)} → @$hash_ref{qw(name position)}