sub unwrap_cdata { my @array; for ( @_ ) { if ( ref ) { push @array, ref eq 'ARRAY' ? [ unwrap_cdata( @$_ ) ] : ref eq 'HASH' ? { unwrap_cdata( %$_ ) } : ref eq 'SCALAR' ? \unwrap_cdata( $$_ ) : (); } else { ( my $var = $_ ) =~ s///; $var =~ s/]]>//; push @array, $var; } } return wantarray ? @array : $array[ 0 ]; }