I'm trying to implement a Moosy Tie/Handler, but I have this problem where whenever i call tie, I get an error "cant find TIEHANDLE" -- examples I've seen so far use a non-Moosy implementation, is there anyway to do this:
package MY_STDOUT; use strict; my $c = 0; my $malformed_header = 0; open(TRUE_STDOUT, '>', '/dev/stdout'); tie *STDOUT, __PACKAGE__, (*STDOUT); sub TIEHANDLE { my $class = shift; my $handles = [@_]; bless $handles, $class; return $handles; } sub PRINT { my $class = shift; if (!$c++ && @_[0] !~ /^content-type/) { my (undef, $file, $line) = caller; print STDERR "Missing content-type in $file at line $line!!\n" +; $malformed_header = 1; } return 0 if ($malformed_header); return print TRUE_STDOUT @_; } 1;
use MY_STDOUT; print "content-type: text/html\n\n"; #try commenting out this line print "<html>\n"; print "</html>\n";
In a more Perl-Moosy way? For example should I do
open(TRUE_STDOUT, '>', '/dev/stdout'); tie *STDOUT, __PACKAGE__, (*STDOUT);
in a BUILD{} function? Would it make more sense to implement this as a Moosy class or as Moose::Role? And finally, would I have to do something like
my $MY_STDOUT = MY_STDOUT->new();
to use it?

In reply to Wrapping Tie with Moose or Moose::Roles by nodebunny

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.