Depends what you mean by "programming". You need more than conditionals and iteration of preexisting lists to be able to do general programming. Petal does not give you a turing complete language or anything like it. It simply gives you a way to render a perl data structure in HTML, adding the ability to render lists as repeated HTML and to conditionally drop certain sections of the template.
That is not programming. For example, the rendering is guaranteed to terminate and while it is possible to set variable and keep state, this is rarely done - the only time I'd ever do it would be to make a short way of referring data at the end of a very long path expression.
I guess it comes down to taste, I really like Petal's style of doing things.