Moving directions

Hi all! Loving OpenGl, graphics programming made easy and fun. Well I have a question regarding moving in a 3-d environment. Currently, I move in the forward direction my camera is facing by multiplying a vec(0.0f, 0.0f, 1.0f) by the camRotationMatrix, and I suppose it being the first way I came up with moving in any way the camera is looking is alright, but I want to know if there is a better way. Currently, I’m having problems being able to “select” objects I’m looking at, and to solve it for now I “ray cast” from my cameras position, forward in the way it is facing, by the way explained above. When looking some directions, it works great (not perfectly straight, its weird, but gets the messy job done), however when looking in other directions, the “ray” will not move in the predicted pattern, as in going up when I’m looking down. So, to end this lengthy post, how can I calculate a movement vector for any direction I’m looking, and works in all directions, and what are the flaws in the way I am doing it now?
Hope to hear from you all soon! Happy holidays and cheers!