in reply to Re^3: Write json structure to a file
in thread Write json structure to a file

Hi! I'm getting this error while using binmode STDOUT, ":utf8". Please help! :)

Failed to require abc.pm because Can't locate object method "BINMODE" via package "OutputTee" at /home/perl.abc.pm line 33.

Replies are listed 'Best First'.
Re^5: Write json structure to a file
by Corion (Patriarch) on Oct 20, 2017 at 08:38 UTC

    Your package OutputTee does seem to implement a tied filehandle but seems to not properly implement the BINMODE method.

    You will have to fix OutputTee.pm to do the right thing. Likely, that is calling binmode on all its filehandles:

    sub BINMODE { my( $self, @args ) = @_; binmode $self->{fh1}, @args; binmode $self->{fh2}, @args; }

      Thanks for your response! :)

Re^5: Write json structure to a file
by hippo (Archbishop) on Oct 20, 2017 at 08:31 UTC
    Can't locate object method "BINMODE"

    binmode is a function, so it should be in lowercase.

    $ perl -e 'binmode STDOUT, ":utf8";' $ perl -v This is perl 5, version 20, subversion 3 (v5.20.3) built for x86_64-li +nux-thread-multi (with 16 registered patches, see perl -V for more detail) Copyright 1987-2015, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge. $

    Does the first command work for you? If not, run the second and see how old your perl is.

    If the first command does work for you (ie. doesn't throw an error) then you'll have to provide an SSCCE to illustrate the precise circumstance of your problem. (and probably start a new topic since it's not really specific to JSON anymore)

      Thanks for your response! Will do as you suggested. :)