On Mon, 12 Aug 2002, Jerome Quelin wrote:

> Thus, I thought this one was the one I wanted. So:
> LOAD:
>         read S0, 256
>         chopn S0, 1   # trailing newline
>         open I10, S0, "r"
>       eq I10, 0, ERR_IO
>         set S1, ""    # Accumulator
> LOAD_READ:
>         read S1, I10, 256
>         print S1
>         print "\n"
>         end
> ERR_IO:
>       print "I/O err\n"
>       end
>
> So, what am I doing wrong? What's the real syntax? (I wish there were a
> parrotopentut ;) ).

 Your first line is presumably a typo, since there is no read STR, INT op
 at the moment; the syntax of the rest looks OK. Unfortunately, the real
 problem is that the read & write ops don't currently work well in
 combination with the open & close ops -- see bug #15357

> While I'm at reading files - why isn't there a readline op for file handles?
> Is it planned / forbidden for an unknown (to me) reason / other (patches
> welcome :o) )?

 Pass.

> Another question. Is there a way to fetch command line arguments, such as:
> $ ./parrot foo.pbc foo bar baz

 Yes: at start-up, they're in an array in register P0. So:

    set S1, P0[0]
    print S1
    print "\n"
    end

 prints the name of the program,

    set S1, P0[1]
    print S1
    print "\n"
    end

 prints the first argument, etc.

 Simon


Reply via email to