{"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fshrkw.hatenablog.com%2Fentry%2F20060305%2F1141549366\" title=\"DuckTyping - Bouldering &amp; Com.\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","url":"https://shrkw.hatenablog.com/entry/20060305/1141549366","type":"rich","provider_url":"https://hatena.blog","width":"100%","categories":[],"description":"\u305f\u3076\u3093\u3001Perl\u3067\u306eDuckTyping\u306f\u3053\u3093\u306a\u3093\u3002 #!/usr/bin/perl package Duck; use strict; use warnings; sub new { my $pkg = shift; bless {@_}, $pkg; } sub quack { 'Gahhh'; } package Swan; sub new { my $pkg = shift; bless {@_}, $pkg; } sub quack { 'Croohhh'; } package main; my $ducks = [ new Duck, new Swan ]; for (@$duck\u2026","blog_title":"Bouldering & Com.","blog_url":"https://shrkw.hatenablog.com/","version":"1.0","provider_name":"Hatena Blog","image_url":null,"published":"2006-03-05 18:02:46","author_url":"https://blog.hatena.ne.jp/shrkw/","author_name":"shrkw","height":"190","title":"DuckTyping"}