ysth is correct, using cd will only change the child process, regardless of Cygwin. However, on the assumption that you are using another command which follows (you don't actually say what you are trying to do) then the following works on Cygwin:
system('sh -c "cd ..;ls"');
This invokes the Bourne shell to execute its built-in cd command.
update: 'which cd' gives a similar message on bash and ksh on Linux ('no cd in ...') because cd is a shell built-in. Try 'type cd' instead'
If all you want to do is cat(1) there are very easy ways of doing that in Perl without invoking another program.