http://www.perlmonks.org?node_id=840214


in reply to Need help understanding some code ...

Looking at something like
#!/usr/bin/perl use strict; use warnings; my $temp = 'key1=two_tabs%09%09+other_two_tabs%09%09&key2=three_nulls_ +%00%00%00'; my @pairs = split(/&/, $temp); foreach my $item(@pairs) { my ($key, $value) = split(/=/, $item, 2); $value =~ tr/+/ /; $value =~ s/%(..)/pack("c", hex($1))/ge; $value =~ s/\t/ /g; $value =~ s/\0//g; print "Key: '$key', value: '$value'\n"; }
you'll get

Key: 'key1', value: 'two_tabs   other_two_tabs  '
Key: 'key2', value: 'two_nulls_'

where the _encoded_ TABs and NULLs are transformed to spaces and respectively eliminated.

But as others mentioned already, you shouldn't do this as above if trying to clean up the inputted data but use a module that handles things like this in much more detail.


Krambambuli
---