こんにちは。こちらはPerl入学式アドベントカレンダーの20日目の記事です。 (おっと日付が……🙇) qiita.com はじめに for文 if文、正規表現 __DATA__ はじめに あらためまして、まずここで「Perl入学式」について簡単に説明しておきますと、Perl入学式とは、Perlまたはプログラミング自体の未経験者に、Perlを通してプログラミングの基礎をお教えしましょう、という無料のプログラミング講座です。 www.perl-entrance.org ぼくも2013年の8月、同年度第3回の補講から、まったく素人の状態で生徒として参加しまして、 Perl入学式#3補講に行ってきた - 103 その翌年春からはサポーター(運営側)に加わっています。 ……といっても最近は地理的な問題などもあり、リモート参加が大半なのですが。 継続的に現場で開講しているメンバーの皆さんには、本当に
はじめに Perlの基礎文法をある程度身につけて、本職のプログラマーほどではないにせよ、趣味や自分の本業を助ける程度のことができるようになってくると、そのもう一段先、ぐらいのことを知りたくなってくる。 現在のぼくにとってそれは正規表現の「先読み/後(アト)読み」を習得することで、実際にはそんなに使わない可能性も高いものの、いつまでもぼんやり把握したままなのが気持ち悪いので、ここ数ヶ月で理解したところを自分なりにまとめておきたい。 はじめに 普通の正規表現 先読み 後読み(戻り読み) 「先」と「後」がもたらす混乱 結論は「進行方向」における先と後 否定先読み 否定後読み 幅を持つもの/持たないもの (?:PATTERN) との違い 幅・キャプチャに関するまとめ まとめ 〜「前後」がもたらす深い謎〜 関連資料 普通の正規表現 まずは土台となる、シンプルな正規表現の例を作っておく。 #!/usr
1ヶ月ちょっとくらい前に、僕のgmailの方に「googleのエンジニアが150時間」かけて書いたPerlの入門記事を紹介してほしいというメールが来た。YAPCなどがあって忙しかったが、ようやく落ち着いたので紹介するよ。僕の英語のブログの方でも紹介予定だけど、先にここで紹介しておく。 PERL Tutorial for Beginners - Complete Guide シリコンバレーのエンジニアは、Perlを紹介してくれることが少なかったような気がするけれど、最近は、Google APPエンジンのところでPerlに対応したことを伝えてくれたり、Amazonの人工知能のスケーラブルなMXNetクラウドでは、Perlのライブラリを公式に加えてくれたりしている。 そして、一か月くらい前には、googleのベテランのエンジニアが、Perlの入門記事を150時間かけて書いているのを、まとめたので
crontabとは 以下がわかりやすいです。 www.server-memo.net @songmuさんによる以下のシリーズも充実しています。 gihyo.jp そのcrontabでPerlのスクリプトを動かそうと思ったところ、以下のようなハマり方をしたのでメモ。 crontabとは crontabはシステムPerlで動く システムPerlに必要なモジュールが入ってない システムPerl以外のPerlを指定できない コード内に相対パスが残っていた なお、環境はMacです。 crontabはシステムPerlで動く 最初にテスト的なコードを書いてみたらあっさり動いたので、逆に気づくまで時間がかかってしまったのだけど、たとえば以下のようなPerlのコードをホームディレクトリに置いておいて、 #!/usr/bin/env perl # # hello.pl use strict; use warn
いきなり例題から。 以下のような2つの配列があるとき、 my @fruits1 = qw/orange banana apple lemon/; my @fruits2 = qw/orange banana/; @fruits1のうち@fruits2とカブるものをカットして、重複しないappleとlemonだけ@fruits1に残したいとする。 こういうとき、今までぼくはこう書いていたのだけど、 #!/usr/bin/env perl # # cut_overlap.pl use strict; use warnings; use feature 'say'; # 以後、配列名は短縮 my @f1 = qw/orange banana apple lemon/; my @f2 = qw/orange banana/; for my $f2 (@f2) { for my $f1 (@f1)
※おもにPerlの話です。 非エンジニアながら趣味でプログラミングに入門したのが2013年の夏。そろそろ4年になろうとしているけど、Perlの基礎を学びはじめてからつい最近まで、一貫して怖かったのがwhile文だった。 怖い、というのも変な気がするが、ようはすぐに無限ループするのがつらく、それを避けたいがためにwhileを使わずに済むかぎりはなるべく使わないようにしてきた、ということ。 すぐに無限ループするとか、なるべく使わないようにする、とかいうのは、結局whileの構造というか、挙動をよく理解していないからそうなる。 理解したくないわけではないのだけど、触るとビビッと痛みを味わい、そこから回復するまでにけっこう時間がかかるので、限られた時間を使ってプログラミング学習をしている身としては、やはり距離を置かざるをえなくなっていた。 べつに無限ループしたって、Ctrl-c とかで抜けちゃえば
UTF-8文字列をUTF-8でエンコーディングした時に得られる文字化けに詳しい人「それUTF-8文字列をUTF-8でエンコーディングしてるんじゃない?」— インタビュー記事 (@moznion) 2014, 6月 11 use strict; use warnings; use Encode qw(encode_utf8); use Time::HiRes qw/usleep/; my ($value) = @ARGV; while(1) { print "$value\n"; usleep 100000; $value = encode_utf8 $value; } encode_utf8しまくるやつ % perl encode.pl '徳川家康' 徳川家康 å¾³å·å®¶åº· å¾³å·Â家康 Ã¥þóÃ¥÷ÃÂÃ¥îöÃÂ¥
Perlでテストを書くときに使われるTest::Moreは「Perlを学ぶとき、真っ先に覚えたいモジュール」の一つです。でも意外に使い慣れてなかったりします。 Test::Moreを使ってテストを書くべき。 Test::Moreはテストを書くときぐらいしか使わない。 テストを書くためだけに、Test::Moreを覚えるのは億劫。 見事にテストを書くこと自体ネガティブになっちゃいますね。ネガティブ・サイクルが回っちゃいますね。このままだとTest::Moreを覚えずにprintf()頼りのテストばかり書いたり、もしかしたらテストも書かないまま一生グルグル回っちゃいます。 まだあります。条件1のところで「でもTest::Moreを使ってテストを書くべきだよ!」と強く言われて一回は書いたとしましょう。その時は多少なりTest::Moreを覚えたんです。でも条件2:テストを書くときぐらいしか使わな
プログラミングの学習にともない作った自分用のコマンドラインツールというものがあって、折りに触れこのブログでも記録&紹介しているのだけど、それでも以前に紹介した後に手元でどんどんアップデートしつつも外には出せていないものや、新たに作ったけど自分しか知らないツールというのもあって、少しずつでもそういうのをあらためて紹介していきたいと思ったのでそうする。 リストアップしてみたら結構な数になったので、何回かに分けるかもしれない。(いま書きながらどうするか考えている。書き終える頃にはどうなるか決まっているはず) choco まずはこれまでも何度か紹介している以下の最新版。 github.com mattnさんによるchoと、lestrratさんによるpecoを使って、ディレクトリをスイスイ移動したり、移動した先で選択したファイルをオープンしたりする。 GitHub - mattn/cho GitHu
2016年も12月となりました. 「師走」と言われる通り, Perl入学式のサポーターもわいわいがやがやと慌ただしい日々を過ごしています. というわけで(!?), 今年も「Perl入学式 Advent Calendar」を開催することになりました! ぱちぱちぱち!!! http://qiita.com/advent-calendar/2016/perl-entrance ...2016年のPerl入学式も, いろいろな変化がありました. 「in沖縄」が遂にスタートしましたし, 「in東京」は"補講"がなくなり, 年2回の開催に変わりました. 「Perl入学式 Advent Calendar」では, そういった「Perl入学式の様子, 変化」はもちろんのこと, 「受講者として/サポーターとして参加した感想」であったり, 「PerlのTips」であったり, 様々なテーマで繰り広げられたらいいな
URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
環境づくり utf8プラグマ openプラグマ binmode関数 標準入出力もopenプラグマにまとめる まとめ 付録 Perlで日本語のテキストを処理しているとけっこうな割合で文字化けにハマる。 近いことについては以前ここでみっちり書いたが、 note103.hateblo.jp どうもその後、自分はbinmode関数やopen関数、およびutf8やopenプラグマについて理解が怪しいな、と思ったのでいろいろ調べつつ現時点での認識をまとめてみる。 環境づくり まずはサンプルケース的に、文字化けしがちな状況を作る。 素材データとして、以下の内容をエンコーディングUTF-8のテキストファイルにsource.txtという名前で保存。 りんご hello 犬 1234 ネコ 次に、そのデータをopen関数で読み込み、split関数で切り刻んで標準出力および書き込み用ファイルresult.txt
経緯 概念 実例 参考書籍 まとめ・展望 経緯 2013年の春にふと「よし、プログラミングやろう」と決めてその夏にYAPC::Asiaに参加して、その直後に買ったのが以下の本。 すぐわかる オブジェクト指向 Perl 作者: 深沢千尋出版社/メーカー: 技術評論社発売日: 2008/06/20メディア: 大型本購入: 12人 クリック: 195回この商品を含むブログ (34件) を見るたしか同YAPCでDeNAの人が大規模新人研修に関する発表をしていて(→)、その最後のほうでお勧め入門書ベスト5みたいなやつを紹介していたのだけど、それがよくある特定の選者が一括で選ぶようなものではなく、研修を受けた側の新人さんたちに聞いたアンケートから抽出されたというリアルなもので、そこに含まれているのを見て興味を持った。 で、先日ようやくそれを読み終わって出た感想。 Perl5によるオブジェクト指向、よう
ブログで紹介するのはもう1年ぶりぐらいになるかな、と思ったけど直近だと去年の11月に書いていた。 note103.hateblo.jp とはいえ、リポジトリのほうを更新するのは久しぶり。 GitHub - note103/carvo このリポジトリ、README.mdもChangelogも前バージョンから書き換えておらず、純粋にlib以下のコードを「こんなに頑張りました!」と公開することだけが目的のような状況なので、リンクを張るかけっこう迷ったものの、まあ失うものもないし・・ということで。 一番大きな変更としては、記事タイトルでも示したように、pecoとchoという二つの優れたコマンドライツールを組み合わせて、選択系の作業をより直感的にできるようにしてみた。 手法としては、少し前に紹介したこちらとほぼ同じ。 note103.hateblo.jp 前回紹介したときのデモはこんな感じだったが、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く