The last two "homeless " people I handed cash to made me decide not to give cash any longer. One was at a Mexican restaurant. While waiting outside a guy came up and said he was hungry and asked if I had any cash. He looked pretty desperate so I looked in my wallet and the smallest bill I had was a $20. I thought to myself, this guy needs it more than me so I gave it to him. He took it , said thanks and went straight across the street to a gas station and bought a carton of cigarettes. He then brought them back to the restaurant and started smoking them right in front of me and started pan handling again.
The next was at an interstate exit. There was a pretty rough looking character at the bottom of the ramp. He had your typical sign that said he was hungry. I opened the window and handed him a $5 bill. I went to get gas and thought I'd grab a burger at the Wendy's inside the gas station. Got in line and the pan handler was in line in front of me. He pulled out a wad of cash rolled up that I couldn't believe fit in his pocket. He had to have over $1,000.
After this I refuse to give money. I've had them hit me up at restaurants since and I've offered them food a couple of times and both refused. One said that that particular restaurant upset his stomach.
I've also offered work to those that had signs saying they'd work for food, not one has taken me up on it. Most common excuse, "I've got a bad back". Some say they don't have time today.