There is no switch statement in Perl. The following is an implementation
of a switch statement using labels and do statements.


SWITCH: for (ref $whatchamacallit) {
	/^$/&& die "not a reference";
	/SCALAR/&& do {
		print_scalar($$ref);
		last SWITCH;
	};
	/ARRAY/ && do {
		print_array(@$ref);
		last SWITCH;
	};
	/HASH/ && do {
		print_hash(%$ref);
		last SWITCH;
	};
	/CODE/ && do {
		warn "can't print function ref";
		last SWITCH;
	};
	# DEFAULT
	warn "User defined type skipped";
}