IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
2008年07月05日01:30 カテゴリLightweight Languages perl - tie()って何をtieするの? 私はタイをまとうのがだいっきらいですが、Perl 5の中で一番好きな関数がtie()だったりします。 tie関数とは - 燈明日記 すると、裏で処理が動き、オブジェクトをコンストラクトしたり、とある処理結果が参照できたり、代入したものに対応したものを格納出来たりする。 というわけで、tie()について語っておくことにしましょう。 tie()とはなにか? ずばり、「オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み」のことです。それがなぜtieと呼ばれるかと言えば、変数を指定されたクラスに結びつけるから、です。 論より証拠、実際に見てみましょう。 use strict; use warnings; { package MySca
2008年07月06日19:30 カテゴリLightweight Languages perl - 暗黙的な参照 # @_ と $_ Good Question! @_の要素の$_[0],$_[1]等は、格納するべきアドレスが可変! - 燈明日記 なぜ、こんな仕様にしたのだろうか・・・。 Good Question だけあって、Good Reasons もきちんとあります。 @_と$_の秘密 まず、事実を再確認しておきましょう。 Perlにおいて、引数を格納する配列@_は、常に参照(reference)です。値(value)ではありません。 これが何を意味するかというと、@_への書き込みが、呼び出し元への書き込みとなるということです。 実際に様子を見てみましょう。 [Run via CodePad] sub inc { ++$_[0] } my $a = 0; print $a, "\n"
threads.xsを見ていて、JMPENVまわりのマクロが気になったのでほげってみる。どうやらJMPENVマクロはevalやPerl_croakに関係するようだが、今回はそのあたりには触れずに、純粋にJMPENVマクロの中身と使われ方を見てみる。 1. setjmpとlongjmp Perlにおけるsetjmpとlongjmpを見る前に、まずはsetjmpとlongjmpの使い方を思い出すためにちょっとだけ手を動かす。環境はVC9。 sj.c #include <stdio.h> #include <setjmp.h> jmp_buf env; void aa (void) { int i = 0; while (1) { if (i == 100) { longjmp (env, i); } i++; } } int main
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ほんのとっかかりだけ。 use strict; use warnings; use Win32::OLE; my $user_name = shift || die; my $skype = Win32::OLE->new('Skype4COM.Skype'); unless ( $skype->Client->IsRunning ) { $skype->Client->Start(); } my $user = $skype->User($user_name); my $call = $skype->PlaceCall($user->Handle); ユーザ名を +81***** と電話番号にすれば、Skype Out で普通の電話にも発信できた。 あとは音声を流し込めば (APIドキュメントによれば wav を流せるらしい)、サーバの障害通知に使えるなあ…… Linux版 Skype
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
http://coderepos.org/share/browser/lang/perl/Net-Twitter-Scraper ぜんぜんできてないけどコミッた。他力なんとかってやつです。 Twitter API を使わずにスクレイピングだけで Net::Twitter とそれなりに互換の機能+αを実装しようかと。 今ならみんな大好き Web::Scraper のコード書き放題だよ。 #!/usr/bin/perl use strict; use warnings; use YAML; use Net::Twitter::Scraper; my $tw = Net::Twitter::Scraper->new( username => 'xxxxxx', password => 'xxxxxx' ); my $res = $tw->archive(); binmode STDOUT, ':
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ
2008年06月27日14:45 カテゴリLightweight Languages perl - Const.pm is unauthorized まずは舌足らずをお詫び。 YappoLogs: Internals::SvREADONLY danさんの ただし、これではscalarしかflagをいじれません。というわけで、同様のことをXSでやるようにするモジュールを書いたというわけです。 これは間違いでARRAYもHASHも弄れます。 これは、s/scalar/PV一つ/gですね。 どういうことかというと、PVAVとしてのarray, PVHVとしてのhashはread-onlyに出来ても、その中身は違うということ。 % perl -MDevel::Peek -le '@a=(1,2);Internals::SvREADONLY(@a,1);Dump \@a' SV = RV(0x180
2008年06月27日07:30 カテゴリLightweight Languages perl - Const released -- True Readonly 空前のXSブームにほだされたのか、気がついたら作ってました。 /lang/perl/Const/trunk - CodeRepos::Share - Trac @CPAN (coming soon) 一言で言うと、Readonlyを置き換えるモジュールです。 Readonlyをお使いなら、s/Readonly/Const/gで同じように動くはずです。 Readonlyはないすでだみあんなモジュールですが、実装にtieを用いているため低速です。 ところが、SVには、すでにREADONLY flagが用意されているのです。これを使わぬ手はありません。 実は、Perl 5.8以降では、Internals::SvREADONLY()とい
2008年06月26日17:30 カテゴリLightweight Languages perl - use List::Util; # for production codes Perl Best Practices Damian Conway [邦訳:Perlベストプラクティス] うーん、これでもいいし、List処理というのはいざとなったら自分で再発明できてしかるべき技能ではあるのだけど、「公式の車輪」も紹介しておいてほしかった。 最大値と最小値を求める。 - サンプルコードによる Perl 入門 というわけで代わりに紹介。 "Perl Best Practices" P.170 Use the "non-builtin builtins" 「ビルトインされていないビルトイン関数」を使おう Perl 5.8 以降であればList::Utilが標準装備されているので、これのmax()が「標
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く