my $CARD; my $home = $ENV{'HOME'} || $ENV{'LOGDIR'} || (getpwuid($<))[7] || die "You're homeless!\n"; open CARD, "< $home/.gnome/GnomeCard.gcrd" or die "Sorry, could not open default card file: $!"; while () { read_card($CARD) if (/^BEGIN:VCARD/); } 1; sub read_card { my $CARD = shift; my ($name, $pobox, $extended, $street, $city, $region, $postalcode, $country); while () { if (/^END:VCARD/) { chomp($name); chomp($country); my $frame = abi::XAP_Frame::getLastFocussed; my $view = $frame->getCurrentView; $view->write "$pobox\n" unless ($pobox eq ""); $view->write "$name\n"; $view->write "$street\n"; $view->write "$postalcode $city ($region)\n"; $view->write "$country\n"; return 0; } else { my ($type, $data) = split /:/; $name = $data if ($type eq "FN"); if ($type =~ /^ADR/) { ($pobox, $extended, $street, $city, $region, $postalcode, $country) = split(/;/, $data); } } } }