in reply to Help with stdout.... in perl..

Firstly, welcome to PerlMonks! And some pointers - please wrap your scripts in < code >< /code > tags and your text in < p >< /p > tags (there are other helpful links and markup tips underneath the preview button when you post anything).

Firstly part II : use warnings and use strict ( Use strict warnings and diagnostics or die ).

Secondly, the differences you see here

However if i change: this line: $mi_obj->add("Fecha-de-Procesamiento", \$fecha); By: $mi_obj->add("Fecha-de-Procesamiento", $fecha);
is caused by you passing a reference (defined) to a variable (undefined) (first case) and an undefined variable (second case) to your object. See perlref for help on references. It is always a good idea to check for success on system calls ( see Best method to capture return code from system calls? ). But for your purpose it may even be a better idea to use one of the many date / time modules or core functions ( Date::Time, Time::Format, localtime scalar(localtime) ).

I am not sure I understand your second question, but it might be worthwhile looking at local for how to make any changes local to your sub. Alternately, you can manually undo the redirect at the end of your sub. There are many posts in the monastery on redirecting / manipulating STDOUT / STDIN / STDERR if you have a look around.

Just a something something...