This domain may be for sale!
Perl における局所変数 ``my'' と ``local'' の違い Perl4 までは、サブルーチンの中だけで使うような、いわゆる「局所変数」は、 ``local'' で宣言していましたが、 Perl5 では、新たに ``my'' というものが使えるようになりました。 それでは、 ``local'' と ``my'' の違いは何なのかというのが、ここでの話題です。 目次 ``my'' って何や? Perl5 では ``my'' を使おう 局所変数とは? ``my'' と ``local'' の使い方 静的スコープと動的スコープ ``local'' にできて ``my'' にできないこと ``my'' って何や? 日本のみなさんは、中学校で英語を習った時、 「あいまいみーまいん」だとか唱えてたと思いますが、 Perl の ``my'' は、その ``my'' です。 つまり、変数を `
ここでは、変数の局所化に使う my と local について解説します。 どちらも変数を局所化することには違いないのですが、細かな点で違いがあります。 この違いを理解していないと想定しない結果となってしまいます。 しっかりと押さえておきたいポイントです。 目次 局所化とは そもそも局所化とは何かを理解しなければいけません(ご理解されている方は飛ばしてください。)。 数十ステップ、数百ステップ程度のスクリプトの場合には、全体を把握しながら作成できるため、あまり気にしませんが、 数千ステップ以上のスクリプトともなると、自分でスクリプトを書いていても、どこにどんな変数名を使ったかを忘れてしまいがちです。 Perl の場合、宣言しなくても、いきなり変数を使うことができるため、そのようになりがちです。 そこで、ある範囲だけに有効な変数として定義することで、他の範囲には影響しないようにすることができま
#!/usr/bin/perl $a=100; #$aに100を代入 $b=5.1e3; #$bに5100(5.1X10の3乗)を代入 $c="ono"; $d=022; #0で始まるのは8進数 $e=0xff; #0xで始まるのは16進数 print "$a $b $c $d $e\n"; printf "%3o %3x", $d, $e; #printfも使える。oが8進、xが16進
mac miniにサーバーをインストールして約2年半、24時間365日止まることなくこの創庵ブログを自宅の本棚から(本棚にこれをおいていたので)世界に向けて発信しつづけてきたmac miniの電源を落としました。お疲れ様でした。 2〜3ヶ月前から、少しづつ外部サーバーやgoogle appsなどに移転をすすめ、今月末にプロバイダーの変更を機に自宅サーバーをやめました。 思えばUPSすらつけていないので、家が停電でもしたら、ブログどころかメールまで届かなくなるほど、この一台に頼り切っていたのですが、この旧型PowerPCのmac miniにのせたDebian君。がんばってくれました。 パフォーマンスも問題なく、ハード自体も起動しているのかすらあまり気にならない静音性も◎ 回線やルーターのトラブルは多かったのですが、ハードのトラブルは皆無でした。 このmac。またマックとしての復活を果たすか
今使ってるスクリプトでDDNSの自動更新がうまくいかないこともあり、たびたびアクセスできなくなることがあったので、自動更新のスクリプトを見直すことにした。この自宅サーバはddo.jpのDDNSを使ってるので、いろいろ調べて見たら、こちらのサイトで紹介されてるスクリプトが良さそうなので使わせてもらうことにした。 自動更新の動きとしては (1)ddo.jpサイトで用意しているリモートIP確認サイトで現在のIPを確認。 (2)前回更新時のIPと変更時間をテンポラリーファイルから読み込む。 (3)前回更新時とIP同じで、かつ前回更新時から2週間以上経ってなかったら終了。 (4)そうでなかったら、DDNSを更新。変更内容をテンポラリーファイルとログに書き込む。 という感じで自動更新されるとのことなので、<2週間以上経ってなかったら終了>の所を1週間に変更して使うことにした。 あとこのスクリプトは、l
Fedora Core 1 のダウンロード で作成したインストール CD を使って Fedora Core 1 をインストールします。 Fedora Core 1 は不要なパッケージを排除してサーバーとして動作させるために必要な最小限のパッケージのみインストールします。 インストーラーの起動と設定 インストール CD をパソコンに挿入して起動します。 CD 起動に成功するとインストール CD を読み込みインストーラー起動画面が表示されます。 この画面で [ boot: _ ] と表示されるので Enter キーを押してインストーラーを起動します。 インストールを開始する前にインストール CD に破損がないかをチェックすることができます。 この作業は時間がかかるので、チェックを行わない場合は [ Skip ] を選択してこの処理を行わないようにすることができます。
ファイルの内容をつなげる 引数にファイル名を2つ以上指定した場合には、ファイル内容をつなげて表示されます。 また、「>出力ファイル名」 をファイル名の引数の最後につけると、つなげたテキストを指定したファイルに書き込みます。 % cat test01.txt ←─── test01.txt の内容を表示 abc % cat test02.txt ←─── test02.txt の内容を表示 def % cat test01.txt test02.txt ←─── 2つのテキストをつなげたものが表示されます abcdef %
最近,特にオープンソース関係の集まりなどに顔を出すと,Windowsマシンではなく,Mac(Macintosh)を持っている人の割合がかなり高くなっていることに気づきます。Macで動くOSといえば,Mac OS Xです。Mac OS Xはいろいろな顔を持ったOSです。まず,Mac独自のアプリケーション実行環境として「Carbon」と「Cocoa」を搭載しています(図1)。Microsoft OfficeやAdobe Photoshopといった市販のMac OS X用ソフトの多くはこの上で動作します。 Part1「今さら聞けないOSの疑問」,Part2「これがWindows Vistaだ!」,Part3 「Windows XP Tips 25 」,Part4「仮想マシンの仕組みを理解する」に続いて,Part5では,Mac OS X(2006年9月時点の「Mac OS X v10.4 (Tig
2004年3月23日:「スクロールはテキスト選択を・・」の記述に一部補足を追加。 今年も Apple はどんどん Mac を新しくして、新しい技術を見せてくれるに違いありません。これからどんどん進化する技術に取り残されないように、いま使っている Mac の使い方をもう一度、見直してみませんか? そこで、2004年最初の記事は初心にかえって「Mac OS の“基本的な”使い方」を考えてみたいと思います。 ● Mac OS の いろいろなショートカット Mac OS に 使い慣れていくと「あっ、こんな使い方があるんだ〜」なんてことを改めて知ることがあります。例えば、Finder で “option キーを押しながら、メニューを選択する”という操作。 “ファイル - ウインドウを閉じる”メニューが “ファイル - すべてを閉じる”に変化したり、“ウインドウ - ウインドウをしまう”
Mac OS Xターミナル(コマンドライン)の基本Mac OS X といえば、UNIX。UNIX といえばコマンドラインです。コマンドラインはターミナル(Terminal )を使って入力する必要があります。必須ではありませんが、使い方は知っておいた方が良いと思います。 Mac OS X の環境をすべて見たり操作したりするにはやはり、ターミナル の知識が必要です。 今回は、「 ターミナルなんて使ったことが無い!」という人向けに、ターミナルの簡単な紹介をします。 ターミナル とコマンドライン まずは、Macintosh HD > アプリケーション > ユーティリティから、「ターミナル」を起動してください。 ターミナルを起動してから行うのは、コマンドライン入力という操作です。ほとんどのパソコンでは作業をするとき、基本的にアイコンのダブルクリックなどでアプリケーションまたは、書類を開いて作業しまが
Mac OS X ターミナルでの日本語の扱いについて 2005/05/09 Update ◆ はじめに Mac OS X v10.2(以降)のターミナルは、UTF-8に対応し、多言語の表示が可能となった。 -vオプション付きでlsコマンドを実行するとUTF-8で記録された日本語名のファイルやフォルダも正しく表示される。 しかし、デフォルトの状態ではコマンドラインへの日本語の直接入力に対応していないため使いにくい。 本ページは、Mac OS Xのターミナルで日本語を扱う際の設定等をまとめたものである。 OSのバージョン固有の設定は[10.4]のように表記している。 特に指定の無いものはバージョン共通の設定である。 なお、Mac OS X v10.2ではデフォルトのシェルがtcshであったが、Mac OS X v10.3以降ではbashに
Googleでは、nofollow属性はブログのコメント覧などブログ管理者以外のユーザーが自動的にリンクを生成できる機能を用いた場合に自動的に付加される事が望ましいとし、ブログツールなどへの実装を呼びかけている。なお、nofollow属性を付加する機能は既に「Six Apart」「Blogger」「LiveJournal」「Scripting News」「WordPress」「Flickr」「Buzznet」「blojsom」「Blosxom」が採用しているという。 rel="nofollow" とアンカータグにつけることでコメントスパム対策、という話。ここ二日ほどあちこちで散見される話題です。Google だけでなく Yahoo! や MSN もその対応を表明したことから、早速実装を進める海外 blog サービスもちらほら。 はてなダイアリーもさっさと実装してしまおうと今朝話したのですが
いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ
最近 Perl でテストを書くときに Test::Class を使ってます。(もしかして常識?) これまでは *.t で Test::More をそのまま使ってたけど、テストが大きくなってくるとコードが分かりにくくなったり、自分であれこれしなきゃいけないことが多くてめんどくさい。 Test::Class は xUnit スタイルで Perl のテストを書けるフレームワークです。xUnit な Perl 実装といえば Test::Unit もあるんですが、テスト用の関数も Test::Unit の流儀に従う必要があってちょっと嫌。Test::Class は Test::More と Test::Harness とか、普段使い慣れてる Perl らしいテストスタイルを使いつつ xUnit できるという点が良いです。 使い方ですが、 Test::Class を継承したテストクラスを作り テスト用
いままで、日本語を使わなかったのですが、 今、開発中のCGIでは日本語を処理しています。 ローカルサーバでのテストでは問題なかったのですが、βテストを開始してみると、環境によって文字化け。 出力する同じHTMLの中に場合によってEUCとS-JISなどが混在する状況になってしまいました。 そこで、jcode.plを使用し、コードの統一を行おうと思うのですが、日本語での解説ページまた、使用方法を解説している質問、回答が見つからなかったので、関数の使用方法を教えていただきたく思います。 私は、英語がすごく苦手なのでjcode.plの中の使用方法を見ても全く読めなかったのです。 日本語で分かりやすく書いていただけると幸いです。
2004.10.17 新規作成。2004.12.19 加筆。2005.04.02加筆。 最近、コンピュータで扱う文字列の文字コードがUnicodeでなければならない場面が増えてきた。UnicodeとシフトJIS、EUC-JPを変換する機会が多い。この変換は変換表で行うが、変換表が実際的なものでなければ、文字化けが発生することになる。 おかしな変換表は、これまでは、特にLinuxなどの上で動作するオープンソースソフトウェアで多く見られた。おそらく規格原理主義者が多かったためだろう。そもそも、規格どおりに変換表を作ると、実用的な変換表にはならない。しかし、最近ではまともな変換表を実装しているものも増えてきて、うまく選ぶだけでいいようになってきている。 変換表の違いをまとめたページはよく見かけるが、実際にどのような条件を満たして変換するものを選べばいいか不明なので、まとめてみた。 変換表に求めら
文字コードとは、数字しか扱えないコンピュータ上で文字を扱うために作られた、数字と文字のコード表です。 1つの文字に対して、1つの16進数の数字が割り当てられています。 文字コードがややこしいのは、いくつもの文字コードの規格があることです。 代表的なものに下記の4つがあります。 ○ JISコード ・・・ メールによく使われます。 ○ EUCコード ・・・ UNIX プラットフォームでよく使われます。 ○ Shift_JIS ・・・ Windows プラットフォームでよく使われます。 ○ unicode ・・・ 世界中の文字を一つのコード体系にまとめたものです。 Perl で文字コードを利用する場合は、基本的に、EUCコードがよいでしょう。 例外的に、プラットフォームが Windows の場合には、シフトJISコードを使うとよいでしょう。 Perl で日本語を扱う場合、日本語変換ライブラリ(j
私はWindowsを使って、数十個のテキストファイルを作っています。これを職場の人たちに、ファイル添付で配ろうと思います。この場合、普通に添付で送って、みなさん読めるものなのでしょうか? 以前に、 ----------------------------------- 改行コードはOSによって違う。 UNIX(Internetのサーバーに多い)は「LF」 Winは「CR+LF」 Macは「CR」 ----------------------------------- という知識を聞きまして…。 そう考えると、普通に送ると、マックの人とかはダメなのかな、と。 送るのが楽で、かつ全員が読めるような、そういう方法があればお教え頂ければ幸いです。
リャマ本で学び始めたばかりなのですが、プログラムの出力がTerminalに表示されずに困っています。 以前学校の授業でUNIX機を使ってhello worldをやったときはchmodして「perl ソース名」とすれば標準出力にhello worldと出た気がするのですが、MAC OSXでchmodして実行してもエラーも出ずに、改行されて通常の入力待ちカーソルが点滅するだけです。 試しにリダイレクトもしてみましたが、新しいファイルができただけでした。 ソースはhello world出すだけのアレなので間違いようがないと思います。 「osx perl」などのキーワードで教えて!gooやgoogleで検索してみましたが、プログラム講座のようなものはたくさんあるのですが、初歩的な環境構築の手ほどきが見つからず、とりあえず http://homepage.mac.com/dnagase/macosx
「続・初めてのPerl 3章」の練習問題で、CPAN からモジュールをインストールする必要があったので、自分用に作業メモを残しておく。 基本的には以下のサイトを参考にさせて頂いた。 CPAN 初級 まず、自分の環境(colinux 上の Fedora7)には cpan shell(CPAN.pmモジュールがこれに該当するのかな?)が入ってなかったのでインストールする。 % sudo yum install perl-CPAN 次に、対話的なモジュールインストールシェル(cpan shell)を起動して初期設定をする。 % sudo perl -MCPAN -e shell 自分は、以下の初期設定をするかどうか聞かれたときに、no と答えた。(本当は、デフォルトの yes で設定を一つ一つ確認したほうがよかったっぽい) Are you ready for manual configurati
内定先の企業が「Perl やっとけ」と暗に仄めかしてるので Perl のお勉強を始めた(Ruby はしばらく放置かな…)。とりあえず、リャマ本を読み進めてみることにした。練習問題の回答だけ備忘録としてメモしておく。 第2章 ex02-3 print "Input number: "; chomp($r = <STDIN>); if ($r < 0) { $r = 0; } $ensyuu = $r * 2 * 3.141592654; print "$ensyuu\n"; ex02-4 #!/usr/bin/perl -w print "Input number 1: "; chomp($num1 = <STDIN>); print "Input number 2: "; chomp($num2 = <STDIN>); print $num1 * $num2 . "\n"; ex02-5
Catalyst でもインストールしますかね,と cpan shell からやってたら,CPANPLUS インストールする?と聞かれました。なんだそれは,と思ったので Catalyst のインストールを中断し,CPANPLUS について調べてみました。 cpan shell に対するメリットとしては(いくつかは cpan shell でもできるのかもしれないけど) 一般ユーザでモジュールをインストールできる(sudo 経由) u コマンドでモジュールのアンインストールができる o コマンドで up-to-date じゃないモジュールを列挙できる b コマンドでインストールされたモジュール群を Bundle ファイルとして構築できる s conf prereqs 1 コマンドで暫定的に依存モジュールを自動インストールできる(最初に設定しておくこともできます) あたりでしょうか。o コマンドが
続・初めてのPerl 改訂版 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,吉川英興,伊藤直也,田中慎司,株式会社ロングテール/長尾高弘出版社/メーカー: オライリー・ジャパン発売日: 2006/10/21メディア: 大型本購入: 9人 クリック: 389回この商品を含むブログ (99件) を見る Perlにおける関数引数は基本的に「参照渡し」だという事がちゃんと分かっていなかったというか、「続・初めてのPerl」の「リファレンス入門」を読んでいるうちに混同してしまっています。 #!/usr/bin/perl use strict; use warnings; my @array = ( "hoge", "foo", "var" ); my $ref = \@array; foreach my $tmp (@array){ print "be
sub totalを自作して以下のコードと組み合わせて走らせなさいという問題です。 my @fred = qw{1 3 5 7 9}; my $fred_total = &total(@fred); print "The total of \@fred is $fred_total.\n"; print "Enter some numbers on separate lines: "; my $user_total = &total(<STDIN>); print "The total of those numbers is $user_total.\n"; ここの、<STDIN>で、標準入力にどのように入力したら和が正確に表示されるのでしょうか? 1 3 5 7 9 エンター Ctrl+D 1,3,5,7,9 エンター Ctrl+D qw{1,3,5,7,9} エンター Ctrl+D な
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く