http://qs1969.pair.com?node_id=838048


in reply to Re: Illegal character CTRLCHAR code 27
in thread Illegal character CTRLCHAR code 27

Hi,

I know how to remove a charachter, but wasn't sure what to use for the control charachter (as I've never had to do that)

This seems to do the trick though:

$user->{$col} =~ tr/\000-\037/ /;

Cheers

Andy
  • Comment on Re^2: Illegal character CTRLCHAR code 27

Replies are listed 'Best First'.
Re^3: Illegal character CTRLCHAR code 27
by moritz (Cardinal) on May 03, 2010 at 09:26 UTC
    I think you're not testing your code properly:
    $ perl -wE '$_="\01\02"; say length; tr/\000-\007//; say length' 2 2

    Nothing removed. (Update: But replaced, see Re^5: Illegal character CTRLCHAR code 27) Still you're on the right track. For deleting with tr///, you need a trailing /d:

    $ perl -wE '$_="\01\02"; say length; tr/\000-\007//d; say length' 2 0
    Perl 6 - links to (nearly) everything that is Perl 6.
      Ah ok - thanks for the heads up - have updated my code :) (weird though, as it seemed to get rid of that error I reported in my first post, even without the /d ?)

      Cheers

      Andy
        Your code was replacing control chars with a space. moritz's is deleting them.