1 #####################################################################
3 # This is a stripped down version of IO::ScalarArray
4 # Given a reference to an array, it supplies either:
5 # a getline method which reads lines (mode='r'), or
6 # a print method which reads lines (mode='w')
8 # NOTE: this routine assumes that there aren't any embedded
9 # newlines within any of the array elements. There are no checks
12 #####################################################################
13 package Perl::Tidy::IOScalarArray;
17 our $VERSION = '20181120';
20 my ( $package, $rarray, $mode ) = @_;
21 my $ref = ref $rarray;
22 if ( $ref ne 'ARRAY' ) {
24 ------------------------------------------------------------------------
25 expecting ref to ARRAY but got ref to ($ref); trace follows:
26 ------------------------------------------------------------------------
32 return bless [ $rarray, $mode ], $package;
34 elsif ( $mode eq 'r' ) {
36 return bless [ $rarray, $mode, $i_next ], $package;
40 ------------------------------------------------------------------------
41 expecting mode = 'r' or 'w' but got mode ($mode); trace follows:
42 ------------------------------------------------------------------------
49 my $mode = $self->[1];
52 ------------------------------------------------------------------------
53 getline requires mode = 'r' but mode = ($mode); trace follows:
54 ------------------------------------------------------------------------
58 return $self->[0]->[$i];
62 my ( $self, $msg ) = @_;
63 my $mode = $self->[1];
66 ------------------------------------------------------------------------
67 print requires mode = 'w' but mode = ($mode); trace follows:
68 ------------------------------------------------------------------------
71 push @{ $self->[0] }, $msg;