#!/usr/bin/env perl use strict; use warnings; # Pretty-printer for hashes (depth 1) sub print_hash { my $hash = shift; print join ', ' => map "$_: $hash->{$_}" => sort keys %$hash; } # Add a given name as meta data to the given hash sub add_name_to_hash { my ($hash, $name) = @_; return bless $hash => $name; } # WARNING: injects an overloading into CGI package CGI; use overload '%{}' => sub {die "AAAAARGH!\n"}; package main; # End of insanity # Prepare some data my $data1 = {answer => 42}; my $data2 = {answer => 17}; # Add names $data1 = add_name_to_hash($data1, 'HTTP'); $data2 = add_name_to_hash($data2, 'CGI'); # Print it print_hash $data1; print_hash $data2;