[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


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


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 ?


More information about the Catalyst mailing list