Hi:
Did you look in your SAS log??? That's where %PUT output goes. Your macro worked for me. SAS Log below. Where did you envision having the "hello world" appear????
My guess is that you probably executed the code once without closing the %MACRO statement with the %MEND statement. So, every next time you executed the code, SAS compiler was still waiting for the closing %MEND keyword appending the code to the opened macro instead of compiling and executing it.
If that happens again you can just execute the mend statement and then try again the full execution of the macro.