タグ

Perlに関するhajimehoshiのブックマーク (11)

  • ppencode 2 - 任意の Perl コードを予約語だけの Perl コードに変換する - 兼雑記

    @TAKESAKO さんが ppencode を作ってから 10 年経って、私が任意の Perl コードを小文字だけに変換するスクリプトを書いてからでも5年経つらしいですが、なんか任意の Perl コードを予約語だけの Perl コードに変換するスクリプトができました。 http://shinh.skr.jp/obf/ppencode.html オリジナルの ppencode に敬意を表していろいろ雰囲気を似せておきました。割と色んな予約語が使われるようにしてみたりとか。 これは Perl が予約語だけあれば Turing complete ということなので、副産物として Quine もできました。 http://golf.shinh.org/reveal.rb?Quine/shinh+%28keywords%29_1431106882&pl なんというか、 ppencode があれば後は

    ppencode 2 - 任意の Perl コードを予約語だけの Perl コードに変換する - 兼雑記
  • HackerRank Blog - FizzBuzz Code Golf Competition

    FizzBuzz is a simple coding challenge popularized by Jeff Atwood to test for the most basic level of coding ability. The goal of FizzBuzz is simply to print the numbers from 1 to 100, but to replace numbers divisible by 3 with “Fizz”, and those divisible by 5 with “Buzz”. This past Friday, HackerRank launched a FizzBuzz competition with a twist: to solve FizzBuzz with the shortest possible source

  • Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ

    Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように

    Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ
  • ほげめも: Git Companion Scripts

    Git Companion Scripts まだしつこくマルチプラットフォーム開発環境における Git のエンコーディングチェック についてやってます。とはいっても、ほとんどもう Perl の話になっているのですが。 いろいろファイルが増えてきたので、新しく Github に Git Companion Scripts というリポジトリを作ってまとめました。これの使い方について書きたいと思います。 2012/05/11 更新: git check-attr による Git 属性の活用 において pre-commit-encoding スクリプトを改良しましたので、この記事の使用法を改訂しました。 概要 Git Companion Scripts は Git の標準環境で追加のソフトウェアのインストールなしに使える便利なスクリプト集です。Linux や Unix の Git だけでなく Gi

  • ほげめも: Git でエンコーディングチェック

    Git でエンコーディングチェック Git で、コミット前にファイルのエンコーディングをチェックする pre-commit フックスクリプトを書きました。 いちおう Unix の Git でも Windows の Git でも使えるのと、まだ未完成なのが特徴です。 クロスプラットフォームな開発環境の現場では、リポジトリ内のファイルのエンコーディングは UTF-8 で統一しているのに Shift JIS のファイルをコミットしてしまう Windows ユーザがいたりするので、そういうのを検出してコミットを阻止するのがこのスクリプトの目的です。 ファイルのエンコーディングの判定はたとえば nkf --guess あたりを使えば簡単そうですが、追加のソフトをインストールする手間はかけたくありません。Git があれば必ず利用可能なことが期待できるソフトウェアの中で、ファイルのエンコーディング判定に

  • GitHub - hatena/Hatena-Textbook: はてな研修用教科書

    Hatena-Textbook はてな教科書は、はてなエンジニアとして最低限必要とされる技術を身につけるための教科書です。 Web開発における重要なトピックを順番に学びながら、課題をといていくことで、Webアプリケーションをひととおり構築できるようになります。 実装言語としてPerlScalaのどちらを選ぶことができます。 トピックごとに学びたい言語の方の教科書を読み進めてください。 目次 プログラミングの基礎 Perlによるプログラミングの基礎 Scalaによるプログラミングの基礎 データベースの基礎 Perlによるデータベースプログラミング Scalaによるデータベースプログラミング Web開発の基礎 PerlによるWebアプリケーション開発 ScalaによるWebアプリケーション開発 Webフロントエンド開発 はてな教科書JavaScripthatena/Hatena-Tex

    GitHub - hatena/Hatena-Textbook: はてな研修用教科書
  • 全裸で学ぶMVC事始め - ゆーすけべー日記

    一般的なWeb Application Framework(WAF)ではMVCという設計及び実装における概念が取り入れられています。 MVCに従ってつくるのが全てではありませんが、 WAFを使うと共に、一度はMVCを用いたWebアプリの開発経験はしておいた方がよいと思います。 MVCはモデル(Model)、ビュー(View)、コントローラ(Controller)の3つの単語を組み合わせた言葉で、 この3つで概念が成り立っています。 クライアントがWebに対してリクエストをした時に、これら3つがそれぞれ連動して結果を返します。 一般的には以下のような処理経路をたどります。 クライアントがWebサイトにリクエスト コントローラがリクエストの処理を行い、モデルとビューを動かす 必要に応じてモデルを呼び出す 結果のデータをビューに渡す ビューがHTML化などをしたものをクライアントに表示する MV

    全裸で学ぶMVC事始め - ゆーすけべー日記
  • プログラミング初心者にオススメのPerl本 - Islands in the byte stream (legacy)

    この時期、Perlを学び始める方も多いと思います。そこでプログラミング初心者がPerlを学ぶのに適したを、私が実際に読んだことのあるものの中から選んでみました。 1冊目 1冊目はなんでもいいと思うのでとりあえず定番としてリャマを挙げておきます。 初めてのPerl 第5版 作者: Randal L. Schwartz,Tom Phoenix,brian d foy,近藤嘉雪出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型購入: 22人 クリック: 293回この商品を含むブログ (41件) を見るこれで基的なPerlの文法が学べるはずです。この手の入門書は「課題」がつきものですが、すべて解く必要はないと思います。幾つか気になるもの・面白そうなものだけ試してみればいいでしょう。 1冊目読了の辞典では、以下のプログラムの簡易バージョン*1を実装できるよう

    プログラミング初心者にオススメのPerl本 - Islands in the byte stream (legacy)
  • なぜPerlで例外処理のfinallyが特に必要と感じないかを考えてみた - Perl入門ゼミ

    Perl › 読み物 Perlでは例外を発生させるにはdieを使います。これはJava言語でいうthrowにあたります。例外をキャッチするにはevalを使用します。これはJava言語でいうcatchにあたります。例外が発生したかどうかは$@にメッセージが設定されたかで判定できます。 # Perlの例外処理 eval { # 例外を発生させる処理 } if ($@) { } Perlには知ってのとおりfinally文がありません。でも特に困るというような話を聞きません。なぜでしょうか。finally文で実行される処理は、ほとんどの場合、外部リソースの解放です。ファイルを閉じたり、一時ファイルを削除したり、DBへの接続を解放したりする処理です。このような処理をfinally文で実行したいという要望があります。 なぜJavaではfinally文は必須なのでしょうか。JavaではGCが「世代別GC

    なぜPerlで例外処理のfinallyが特に必要と感じないかを考えてみた - Perl入門ゼミ
  • Perl基礎文法最速マスター - Perl入門ゼミ

    Perl › 基礎文法 ITの現場でPerlが必要になって、今勉強しているという方はおられませんか? 他の言語をある程度知っている方が「Perl基礎文法最速マスター」を読めば、Perlの使い方の基礎をマスターしてPerlを書くことができるようになっています。 基礎 文法チェック 文法をチェックを厳しくするために最初に必ず次の2行を書くようにします。 use strict; use warnings; 「use strict」と「use warnings」という2行を加えることで事前に文法チェックが行われるので、ソースコードを記述する作業は速くなり、コードの品質が上がります。 print関数 文字列を出力するにはprint関数を使用します。 print "Hello world"; Perlでは標準関数や事前に定義されている関数で括弧を省略することができます。 コメント Perlのコメントで

    Perl基礎文法最速マスター - Perl入門ゼミ
  • Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記

    先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が

    Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記
  • 1