[Catalyst] About output in a browser

lanas lanas at securenet.net
Tue Aug 28 23:52:28 GMT 2007


Hi folks,

  In understanding how Catalyst work and how to work with , I'm making
very simple stuff, like having a model that only returns a directory
listing.  I found something curious before starting to make a view.
Every line of the directory listing, obtained with 'ls -l', will be
chomped if I do not put a print "String !" just before it in the
model, like this:

prints chomped lines, which results in unstructured output in the
browser:

MyApp01/lib/MyApp01/Model/MyApp01Model.pm

sub getFiles()
{
  my ( $self, $c ) = @_;
  @{$c->stash->{files}} = `ls -l /home/user/`;
}

prints neatly, every line of the directory listing on a separate line
in the browser:

sub getFiles()
{
  my ( $self, $c ) = @_;
  print "getFiles() !";
  @{$c->stash->{files}} = `ls -l /home/frodo/`;
}

'getFiles()!' will also get printed in the browser, but I presume this
is OK.

The output is in the following.  There are no view defined at the
moment.

MyApp01/lib/MyApp01/Controller/Root.pm

sub end : ActionClass('RenderView') 
{
  my ( $self, $c ) = @_;

  if (defined $c->stash->{files}) {
    $c->response->body( "@{$c->stash->{files}}" )
  }
    else {
      $c->response->body("NO DATA !");
    }
}

Can someone tell me why the output of the directory listing is not the
same due to, apparently, the poresence of a print statement ?


Al




More information about the Catalyst mailing list