Submit Search
Upload
コンテキストと仲良く
•
2 likes
•
3,351 views
karupanerura
Follow
Kichijoji.pm #14
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 38
Download now
Download to read offline
Recommended
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
近藤 嘉雪
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします
yoku0825
Recommended
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
近藤 嘉雪
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします
yoku0825
Marp Tutorial
Marp Tutorial
Rui Watanabe
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
Takuya Kikuchi
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
joisino
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
PHP の GC の話
PHP の GC の話
y-uti
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
Marp入門
Marp入門
Rui Watanabe
論文の図表レイアウト例
論文の図表レイアウト例
Sunao Hara
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Perl5 VS JSON
Perl5 VS JSON
karupanerura
The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura
More Related Content
What's hot
Marp Tutorial
Marp Tutorial
Rui Watanabe
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
Takuya Kikuchi
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
joisino
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
PHP の GC の話
PHP の GC の話
y-uti
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
Marp入門
Marp入門
Rui Watanabe
論文の図表レイアウト例
論文の図表レイアウト例
Sunao Hara
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
What's hot
(20)
Marp Tutorial
Marp Tutorial
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
クロージャデザインパターン
クロージャデザインパターン
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
C++ マルチスレッド 入門
C++ マルチスレッド 入門
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
Docker Compose 徹底解説
Docker Compose 徹底解説
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
PHP の GC の話
PHP の GC の話
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
Marp入門
Marp入門
論文の図表レイアウト例
論文の図表レイアウト例
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
More from karupanerura
Perl5 VS JSON
Perl5 VS JSON
karupanerura
The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura
Aniki::Internal
Aniki::Internal
karupanerura
The Crystal language *recently* update
The Crystal language *recently* update
karupanerura
KOWAZA for mackerel
KOWAZA for mackerel
karupanerura
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Aniki has come
Aniki has come
karupanerura
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
karupanerura
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura
router-simple.cr
router-simple.cr
karupanerura
Why we use mruby with Perl5?
Why we use mruby with Perl5?
karupanerura
はかたの塩
はかたの塩
karupanerura
Gotanda.pmの紹介
Gotanda.pmの紹介
karupanerura
すいすいSwift
すいすいSwift
karupanerura
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
karupanerura
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
karupanerura
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
karupanerura
Perl5 meta programming
Perl5 meta programming
karupanerura
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura
More from karupanerura
(20)
Perl5 VS JSON
Perl5 VS JSON
The plan of Aniki 2.0
The plan of Aniki 2.0
Aniki::Internal
Aniki::Internal
The Crystal language *recently* update
The Crystal language *recently* update
KOWAZA for mackerel
KOWAZA for mackerel
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
DateTimeX::Moment
DateTimeX::Moment
Aniki has come
Aniki has come
Optimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
router-simple.cr
router-simple.cr
Why we use mruby with Perl5?
Why we use mruby with Perl5?
はかたの塩
はかたの塩
Gotanda.pmの紹介
Gotanda.pmの紹介
すいすいSwift
すいすいSwift
Perlにおけるclass実装パターン
Perlにおけるclass実装パターン
モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
Perl5 meta programming
Perl5 meta programming
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
Recently uploaded
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
Kurata Takeshi
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
mizukami4
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
Recently uploaded
(8)
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
コンテキストと仲良く
1.
コンテキストと仲良く id:karupaneura Kichijoji.pm #14
2.
※今回のものを含む、ぼくがコミュニ ティにおいて発表する全ての内容は、 特に明⾔言のない限り所属する組織や団 体の意思やスタンスなどを代弁ないし 表明するものでは⼀一切ありません。 ※あくまでも個⼈人の考えに基づく内容 となりますので予めご了了承ください。 お断り
3.
だれ • かるぱねるら (@karupanerura)
at DeNA • Perl / Go / Python / Ruby / Java / etc.. • Japan Perl Association 理理事 • Gotanda.pm / Mackerel UG 発起⼈人 • Shibuya.pm 現リーダー (仮)
4.
宣伝: Shibuya.pm #18 •
7/5(⽊木) 19:00- • DeNA, Co,. LTD • テーマ: あのCPANモジュールの裏側 • skaji • songmu
5.
こういうツイートをわざわざ しちゃうくらいPerlが好き
6.
今回のボツ題 よくあるPerl disへのdis
7.
Perlに関してよく聞く話
8.
Perlに関してよく聞く話 • シジル意味ある?邪魔では? • リスト邪魔、全部リファレンスでいいじゃん •
なんでeqと==ふたつもあるの?無駄では? • 数値がいつのまにか⽂文字列列になっててキモい • 真偽値ないなんてありえない
9.
これみんな ただのコンテキストに 対する理理解不不⾜足だよ
10.
全部コンテキストが背景にある • シジル • リスト •
⽂文字列列演算⼦子と数値演算⼦子 • 数値、⽂文字列列、真偽値などの表現 コンテキストを理理解してなきゃ意味わからなくて当たり前 ※とはいえちゃんと分からなくてもPerlは書けるよ!
11.
tl;dr • コンテキストを理理解すればPerlをdisる理理由が ほぼなくなるよ • 少なくとも他のLLと同じかそれ以下にはなる
12.
コンテキスト わかってしまえば こわくない 字余り
13.
コンテキスト #とは ところで!
14.
⼀一般的に⾔言われるコンテキスト refs: https://www.google.co.jp/search?q=%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88
15.
⼀一般的に⾔言われるコンテキスト その2 refs: https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AF%E3%82%B9%E3%83%88
16.
Perlにおけるコンテキストとは • Perlでデータを扱うときに必ず扱われる概念 • データの型解釈の仕⽅方をPerlに伝えるルール •
コンテキストを理理解すればPerlでも型を⾃自在 にコントロールできる • Perlわからん…ってなってしまった⼈人は⼤大抵 コンテキストを理理解すれば解決する
17.
コンテキストを理理解する = Perlをもっと好きになる⼀一歩! とはいえ、概念なので理理解が⼤大変。中級者以上向け
18.
先⼈人達の知⾒見見 • たくさんあるので読むと良いです • perldoc
perldata • ほか「Perl コンテキスト」でググるとたくさ んでてくる • 抽象的な概念なので⾊色んな⼈人の解釈やコード を読んでイメージを⾃自分の中に作るのがコツ
19.
おすすめスライド refs. https://www.slideshare.net/KondoYoshiyuki/yapc2012-20120929
20.
詳しい解説は今回はしません 知りたい⼈人はさっきの資料料読んでね
21.
個⼈人的なコンテキスト考 あくまでも私⾒見見なので そこんとこよろしく
22.
perldoc perldata • perldoc.jp訳 •
「Perl はスカラが⽂文字列列、数値、リファレ ンス (オブジェクトを含みます)を 保持する ことのできる⽂文脈的多態⾔言語 (contextually polymorphic language) です。」
23.
Contextually Polymorphic Language
24.
データ型の違い • 変数が3種類類ある • スカラ/配列列/ハッシュ
(単値とその集合) • スカラは評価されるコンテキストで具体的な型 が決定する • これがContextually Polymorphicたる所以
25.
Perlは⾃自然⾔言語っぽい というか⼈人間っぽいというか • ⾃自然⾔言語っぽい書き味はコンテキストが作ってる • コンテキストはPerlが(ルールベースで)⼈人間っぽく 「空気を読んで」データを解釈する仕組みと⾔言える •
Perlがどう空気を読んでくれるのかという仕様が コンテキストの本質 • とにかく他のプログラミング⾔言語とは異異⾊色
26.
「空気を読む」 #とは • 演算⼦子の種類類など⽂文を形作るものが何かによっ て、どのコンテキストかが定まる •
ただのルールなので覚えれば⼈人も分かる • データが明確な型を持っている世界ではない • コンテキストによってデータの型が確定する • → 単純にパラダイムが異異なるので理理解が必要
27.
でも、なんで…? 他の⾔言語と同じじゃダメ…?
28.
私⾒見見 他の⾔言語と同じでも良い けどPerlはこうしたかった それはなぜか
29.
Perlの主戦場はテキスト処理理 • ⾃自然⾔言語上で型を意識した表現はしない • なぜなら⼈人の思考の中ではそのデータを数 値として扱うか⽂文(の⼀一部)として扱うかは⽂文 脈により⼀一意に決定されるから •
モノが0個なら無い、1個や2個ならある、っ て判断は真偽値コンテキストじゃん?
30.
たとえば年年齢 • 「100歳のおじいさん」だとか⼈人は書く • ⽂文中だから100を⽂文字列列にしようとか考えない けど⾃自然とやる •
逆に、"100歳" がわかれば来年年は +1 して "101歳" とか考えられる • 同様のことをコード上で素直に表現するには?
31.
たとえば年年齢 • $age .
'歳のおじいさん' • 「⽂文中なので年年齢は⽂文字列列として考えよう」 • $age + 1 • 「計算するんだから年年齢は数値として考えよう」 • つまりそれぞれの⽂文の中で$ageの型解釈が⾃自明
32.
⾃自然⾔言語っぽい データの解釈だと思いません?
33.
⼈人間が簡単にデータを扱いたい ↓ ⾃自然⾔言語のデータの扱い⽅方に合わせたい ↓ ⽂文脈によって型が⾃自明になるようにしたい ↓ ⽂文脈でデータ型を表現できる仕組みが必要 ↓ コンテキストの誕⽣生?
34.
Perlがコンテキストで解決したこと • データの解釈を⾃自然⾔言語的にした • Perlはデータ型やメモリなどを理理解せずとも 書ける •
システム運⽤用担当者などプログラミングに 明るくない⼈人にも優しい⾔言語になった • 「簡単なことはより簡単に」の実践
35.
解決しなかったこと • データ型など⼀一般的なプログラミング⾔言語の 概念と結びつけにくい • 柔軟な考え⽅方が苦⼿手な⼈人には少し難しい •
処理理系実装の複雑さを招く⼀一因になった • Cには当然コンテキストが存在しないので Objectiveに同様の物を表現する必要がある
36.
まとめ
37.
まとめ • コンテキストは分かれば簡単だけど最初は難しい • ⾃自然⾔言語的な側⾯面があり、ルールが多い •
コンテキストはPerlの中⼼心になってる • ちゃんと理理解するとPerlと仲良くなれる • 各位、コンテキストと仲良く!
38.
落ち葉拾拾い(というか⾔言い訳) • あくまでも私⾒見見であり公式⾒見見解ではないよ • LTなんで詳しい説明はしなかったよ •
詳しく聞きたい⼈人は懇親会とかでも • 分からなくてもPerl書いて良いんだよ • 知ってると「より正しい」コードが書けるよ
Download now